【发布时间】:2022-03-09 10:05:20
【问题描述】:
我有以下 2 个表:
CREATE TABLE [Names]
(
[Id] INT PRIMARY KEY,
[Name] VARCHAR(100)
)
CREATE TABLE [Relationships]
(
[Parent] [int] REFERENCES [Names]([Id]),
[Child] [int] REFERENCES [Names]([Id])
)
Sample Data:
INSERT [NAMES] VALUES (1,'FRANK')
INSERT [NAMES] VALUES (2,'JO')
INSERT [NAMES] VALUES (3,'MARY')
INSERT [NAMES] VALUES (4,'PETER')
INSERT [NAMES] VALUES (5,'MAY')
INSERT [RELATIONSHIPS] VALUES (1,2)
INSERT [RELATIONSHIPS] VALUES (2,3)
INSERT [RELATIONSHIPS] VALUES (4,2)
INSERT [RELATIONSHIPS] VALUES (5,4)
如何显示名称的嵌套(树)列表,包括 [Id]、[Name] 和 [Level],其中 [Level] 表示从顶部开始的嵌套级别(Root:Level = 0;Root 的第一个子项:级别 = 1;等等……)? 例如,结果应该显示:
Level Relationship
----- ------------
2 FRANK <- JO
3 FRANK <- JO <- MARY
2 PETER <- JO
3 MAY <- PETER <- JO
【问题讨论】:
标签: sql-server tsql recursion