在我们的一个数据库中,我们使用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的许多好处。有没有人对如何做到这一点有任何想法?
谢谢,
乔
答案 0 :(得分:0)
你可以试试这个,希望它会起作用。
SELECT HierarchyId.ToString()
FROM Tree
ORDER BY cast(HierarchyId as nvarchar(100)) DESC