给定上下文:如何在相邻列表中复制节点的子节点
在邻接列表中,如何选择任何节点并获取所有子节点?
例如,请参阅下面突出显示的节点。
尝试使用 CTE(关于 CTE):
DECLARE @SelectedNode INT = 103;
;WITH nodes AS
(
SELECT Node
, ParentNode
, GroupID
, Depth
FROM TableNodes WHERE Node = @SelectedNode
UNION ALL
SELECT tn.Node
, tn.ParentNode
, tn.GroupID
, tn.Depth FROM TableNode tn
INNER JOIN nodes n ON n.Node = tn.ParentNode
)
SELECT * FROM nodes;