gpt4 book ai didi

sql - 多级父子关系

转载 作者:行者123 更新时间:2023-12-02 09:11:52 25 4
gpt4 key购买 nike

我有一个这样的表:

enter image description here

我想输出这样的层次结构:

a - c - x1
a - c - x2
a - d - y1
a - d - y2
b - e - z
b - f - q

我搜索了一些 CTE 示例,但它们仅列出了层次结构的 (2,2) 组合。如何在不依赖父子深度的情况下实现这个结果?

最佳答案

您想使用递归 CTE。

下面获取所有路径:

with cte as (
select cast(child as varchar(max)) as path, child, 1 as lev
from t
where parent is null
union all
select cast(cte.path + ' - ' + t.child as varchar(max)), t.child, lev + 1
from cte join
t
on cte.child = t.parent
)
select *
from cte;

如果你只想要终端叶子的路径:

select *
from cte
where not exists (select 1
from t
where t.parent = cte.child
);

关于sql - 多级父子关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51172884/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com