PSQL как сделать рекурсивный запрос с переменным параметром - PullRequest
0 голосов
/ 13 мая 2019

Мне нужен запрос в 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, и он должен вернуть всех потомков этого родителя на всех глубинах рекурсии.

...