Рекурсивный запрос Failing - PullRequest
       3

Рекурсивный запрос Failing

0 голосов
/ 25 сентября 2018

У меня есть таблица ниже

TOPIC_NO    TOPIC_NAME  parent_no
54          Intro Main  0
56          LTCP        54
57          Intro Main  54
59          Intro       57
62          Link Demo   0

Для данной темы нет, я хочу перечислить всех дочерних элементов, дочерних элементов дочерних элементов ... и так далее.Я пытаюсь создать рекурсивный запрос, но сталкиваюсь с "The maximum recursion 100 has been exhausted before statement completion."

Ниже приведено то, что я сделал до сих пор.Любая помощь с благодарностью

WITH TEMP(TOPIC_NO) AS (
SELECT TOPIC_NO FROM EDUDB.TOPICS WHERE TOPIC_NO= 54
UNION ALL 
SELECT B.TOPIC_NO FROM EDUDB.TOPICS A, TEMP B
WHERE A.PARENT_NO = B.TOPIC_NO
AND A.PARENT_NO <> 0
)
SELECT * FROM TEMP;

1 Ответ

0 голосов
/ 25 сентября 2018

У вас небольшая ошибка.См. Ниже:

WITH TEMP(TOPIC_NO) AS (
SELECT TOPIC_NO FROM EDUDB.TOPICS WHERE TOPIC_NO= 54
UNION ALL 
SELECT A.TOPIC_NO FROM EDUDB.TOPICS A, TEMP B -- here!
WHERE A.PARENT_NO = B.TOPIC_NO
AND A.PARENT_NO <> 0
)
SELECT * FROM TEMP;

Вы должны получить A.TOPIC вместо B.TOPIC.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...