【发布时间】:2019-05-21 16:25:09
【问题描述】:
总结
在 Azure 数据库中(使用 SQL Server Management Studio 17,因此 T-SQL)我试图连接多个不同长度的父子关系。
基表
我的桌子是这样的:
ID parent
1 2
2 NULL
3 2
4 3
5 NULL
随意使用此代码来生成和填充它:
DECLARE @t TABLE (
ID int,
parent int
)
INSERT @t VALUES
( 1, 2 ),
( 2, NULL ),
( 3, 2 ),
( 4, 3 ),
( 5, NULL )
问题
我如何收到如下表所示路径连接的表格?
ID path parentcount
1 2->1 1
2 2 0
3 2->3 1
4 2->3->4 2
5 5 0
详情
真实的表有更多的行,最长的路径应该包含大约 15 个 ID。因此,在父计数定义方面找到一个动态的解决方案将是理想的。 另外:我不一定需要“parentcount”列,因此请随意跳过答案。
select @@version:
Microsoft SQL Azure (RTM) - 12.0.2000.8
【问题讨论】:
-
看看递归 ctes。这正是您需要的。
标签: sql sql-server tsql ssms parent-child