我有下表
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;
答案 0 :(得分:1)
您有一个小错误。见下文:
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
。