问题:我可以修改查询来显示导航路径吗?

问题:我可以修改查询来显示导航路径吗?,第1张

问题:我可以修改查询来显示导航路径吗?,第2张

我看到了你关于公共表表达式的文章,其中有一个递归查询。如何修改这个查询来显示从树到每个节点的路径,并以不同的格式返回到结果集?例如,如果数据是:

ID ParentId
A null
B A
C A
D B
E C


我希望查询返回的结果是:

ID级别路径
a1a
b2a . B
c2a . C
D3 A . B . D
E3 A . B . C


专家回答:

创建表#x
(
ID CHAR(1),
ParentID CHAR(1)
)

INSERT #x (ID,ParentID)
SELECT 'A ',NULL
UNION ALL
SELECT ' B ',' A'
UNION ALL
SELECT 'C ',' A'
UNION ALL
SELECT 'D ',' B'
UNION ALL
SELECT 'E ',' C '

;使用FullPath作为
(
SELECT
ID,
1作为级别,
CONVERT(VARCHAR(MAX),ID)作为来自# x
的路径,其中ParentID为空

联合所有

选择
x.ID,
FP。Level + 1为Level,
FP。路径+' . '+x . ID AS Path
FROM # x AS x
JOIN full Path FP ON x . ParentID = FP。ID
)
SELECT *
FROM full path

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 问题:我可以修改查询来显示导航路径吗?

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情