You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

单表多树结构中查询指定节点下的唯一子节点(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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:04:50