在我们的一个数据库中,我们使用 HierarchyId 列。然后我们从表中选择行,如下所示:
SELECT HierarchyId.ToString()
FROM Tree
ORDER BY HierarchyId DESC
这以一个很好的层次结构布局,但所有节点都以相反的顺序排列,如下所示:
1/13/
1/12/123/
1/12/122/
1/12/121/
1/12/
1/11/
1/
但是,我们希望节点保持此顺序,但父节点位于子节点之上,如下所示:
1/
1/13/
1/12/
1/12/123/
1/12/122/
1/12/121/
1/11/
我能想到的唯一解决方案涉及递归 CTE,它会否定使用 HierarchyId 的许多好处。有人对如何做到这一点有任何想法吗?
谢谢,
乔