我的查詢工作基於CTE Recursion to get tree hierarchy顯示了我的層次結構樹。將根節點添加到SQL CTE層次結構樹
結果看起來像
- Category
- Category
- - SubCategory
- - - Sub SubCategory
- - SubCategory
...
我想根節點添加到我的樹,但我沒有看到如何做到這一點。我如何將根節點添加到這棵樹?
編輯:我目前的查詢看起來是這樣的:
;WITH Tree as
(
Select Parent_ID, ParentDescr, Node_ID, Node, 1 as Level, cast(Node as varchar(max)) as Path
FROM Nodes
WHERE ParentDescr = 'Root'
UNION ALL
Select A.Parent_ID, A.ParentDescr, A.Node_ID, A.Node, Level + 1 as Level, cast(B.Path + ' | ' + A.Node as varchar(max)) as Path
FROM Nodes A
INNER JOIN Tree B ON A.PARENT_ID = B.Node_ID
WHERE A.ParentDescr <> 'Root'
)
SELECT REPLICATE(' - ', level) + Node as Tree, Path, Node_ID, ParentDescr, PARENT_ID
from Tree
ORDER BY Path asc
下面是一些樣本數據:
SELECT *
FROM (
VALUES
('123','Root',NULL,NULL),
('456','Category','123','Root'),
('789','SubCategory','456','Category'),
('012','Sub SubCategory','789','SubCategory'),
('345','Category','123','Root')) AS vtable
([Class_ID],[Class],[Parent_ID],[ParentClass])
結果應該是這樣的:
Root
- Category
- - SubCategory
- - - Sub SubCategory
- Category
您發佈的代碼有什麼問題?你有錯誤嗎? –
沒有錯,我只是想添加根節點。 – MAW74656
在我看來,你已經掌握了它,因爲聯盟的上半部分使用'ParentDescr ='Root''。所以你得到什麼錯誤? –