我有下表
ID CATALOGUE SWID PARENTSWID LEVEL
1 1 1 1 0
2 1 2 1 1
3 1 3 1 1
4 1 4 2 2
5 1 5 4 3
6 1 6 5 4
7 2 2 2 0
8 2 3 2 1
所以我想要所有(SWID)
具有PARENTSWID= "1"
.
根级别始终为“ 0
”,并且根元素具有相同的SWID
和PARENTSWID
树的深度没有边界。稍后我将不得不使用该CATALOGUE
属性限制搜索,但现在我需要知道如何设置它。
那么,有人做过这样的事情吗?:)
亲切的问候森马
WITH cte as
(
SELECT ID, CATALOGUE, SWID, PARENTSWID, LEVEL
FROM table
WHERE PARENTSWID = 1
AND LEVEL = 0
UNION ALL
SELECT t.ID, t.CATALOGUE, t.SWID, t.PARENTSWID, t.LEVEL
FROM table t
JOIN CTE ON cte.ID = t.PARENTSWID
AND t.LEVEL= cte.LEVEL+1
)
SELECT ID, CATALOGUE, SWID, PARENTSWID, LEVEL FROM cte;
尝试此操作时,我收到错误“未知 ISC 错误 336397226”。
我查了一下这个错误,它的意思是:336397226 dsql_cte_cycle CTE '@1' has cyclic dependencies
我的桌子上的东西和这里的一样
(我已经在 IBWSQL 上尝试过,并选择了我的数据库)