小编Ben*_*Ben的帖子

在SQL Server中对递归结果集进行排序

我在构造一个返回XML样式层次结构的查询时遇到了极大的困难.

我们有一个数据库表,其中包含我们网站的URL层次结构.该表包含列:ID,URL,DisplayName,ParentID,ItemOrder

父ID在当前项和它的父项之间形成递归关系.该项目应位于层次结构中它的父级下方,并且还应使用项目顺序对层次结构中同一级别的项目进行排序.

我设法得到一个递归查询工作,所以它按顺序向下钻取层次结构,但我也不能按项目顺序排序.

我目前的查询如下:

WITH Parents AS
(
SELECT MenuItemId, URL, ParentItemId, ItemOrder
FROM CambsMenu

UNION ALL

SELECT si.MenuItemId, si.URL, si.ParentItemId, si.ItemOrder
FROM CambsMenu si INNER JOIN Parents p
ON si.ParentItemId = p.MenuItemId
)

SELECT DISTINCT *
FROM Parents
Run Code Online (Sandbox Code Playgroud)

sql sql-server recursion common-table-expression

2
推荐指数
2
解决办法
8791
查看次数