我需要获取分层表的根节点(具有 PARENT_ID = NULL):
ID | PARENT_ID
60 NULL
21 60
11 NULL
23 11
24 21
25 23
14 24
13 25
Run Code Online (Sandbox Code Playgroud)
我想要这个结果:
ID | PARENT_ID | ROOT_ID |
-------------------------
1 NULL NULL
2 1 1
3 1 1
4 2 1
5 4 1
6 NULL NULL
7 6 6
8 7 6
Run Code Online (Sandbox Code Playgroud)
CTE是个好方法吗?我怎样才能创建它?
显然我可以有更多的一个根节点。我必须获取每个节点的根节点。
这就是我所做的:
;WITH RCTE AS
(
SELECT ID, PARENT_ID, ID as ROOT_ID
FROM TABLE r1
WHERE NOT EXISTS (SELECT * FROM TABLE r2 WHERE …Run Code Online (Sandbox Code Playgroud) sql sql-server recursion recursive-query common-table-expression