在SQL中,您可以使用CTE进行查询。例如,要检索在其树中具有其父级和最高父级的节点的列表:
declare @t table (id int, parent int)insert @t (id, parent) values (1, null), (2,1), (3,2), (4,3), (5,null), (6,5); with cte as ( select id, parent, id as head from @t where parent is null union all select child.id, child.parent, parent.head from @t child join cte parent on parent.id = child.parent)select *from cte
这给出了:
id parent head1 NULL 12 1 13 2 14 3 15 NULL 56 5 5
请注意,我更改了示例数据,因此第2行不再是其自身的子级,而是第1行的子级。



