Мне нужен запрос в SQL / PSQL, который дает мне иерархические отношения с указанным родителем.
Я пробовал только рекурсивный запрос, но не могу указать первого родителя, затем я попытался поместить весьВыражение CTE в функции, и, наконец, я попытался использовать объявленную переменную и переопределить ее каждый раз, когда использую запрос.
DECLARE @procura = null;
WITH RECURSIVE hierarquia (procura) AS (
SELECT categoria, super_categoria
FROM
CONSTITUIDA
WHERE
super_categoria = @procura
UNION
SELECT c.categoria, c.super_categoria
FROM
CONSTITUIDA c
INNER JOIN hierarquia h ON h.categoria = c.super_categoria
) SELECT
*
FROM hierarquia;
Примечание: CONSTITUIDA имеет 2 столбца, category и super_categoria, которые являются соответственно дочерним и родительским.
Я хочу указать родителя CONSTITUIDA, и он должен вернуть всех потомков этого родителя на всех глубинах рекурсии.