单表多树结构中查询指定节点下的唯一子节点(CTE方案咨询)
关于SQL树结构获取去重子节点的疑问
先给你看看存储的4棵树结构:
T1 T2 T3 T4 -- -- -- -- A F B H | | | | | | | I B C A | | | | B D D C | | | J E G
我的需求是:获取指定节点值下的所有distinct子节点,比如节点B对应的子节点去重后是 A、C、D、E、G、J。
已经创建好的表的SQL代码如下:
declare @t table (t_id int, parent_t_id int, tree varchar(2), item varchar) insert into @t select 1, 0, 'T1', 'A' union select 2, 1, 'T1', 'B' union select 3, 1, 'T1', 'C' union select 4, 2, 'T1', 'D' union select 5, 2, 'T1', 'E' union select 5, 4, 'T1', 'G' union select 6, 0, 'T2', 'F' union select 7, 6, 'T2', 'B' union select 8, 6, 'T2', 'C' union select 9, 7, 'T2', 'D' union select 10, 0, 'T3', 'B' union select 11, 10, 'T3', 'A' union select 12, 10, 'T3', 'C' union select 13, 0, 'T4', 'H' union select 14, 13, 'T4', 'I' union select 15, 14, 'T4', 'B' union select 16, 15, 'T4', 'J' select * from @t
想请教下:是否需要使用CTE来实现这个需求?
内容的提问来源于stack exchange,提问作者TDP
相关产品推荐
相关产品推荐

