小编Alf*_*ori的帖子

按名称排序的父子层次结构

我想为以下内容创建 SQL Server 查询。我有这样的数据:

Id       Name       parentId
1         STU        0
2         XYZ        5
3         PQR        5
4         EFG        0
5         ABC        0
6         HIJ        1
7         DEF        1
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的查询:

SELECT *
FROM TABLE
ORDER BY CASE WHEN parentId = 0 THEN id ELSE parentId END ASC, id ASC
Run Code Online (Sandbox Code Playgroud)

输出(父级及其子级排序在一起):

Id       Name       parentId
1         STU        0
6         HIJ        1
7         DEF        1
4         EFG        0
5         ABC        0
2         XYZ        5
3         PQR        5
Run Code Online (Sandbox Code Playgroud)

现在我还需要按姓名排序,首先按父母的姓名,然后是所有孩子,也按姓名排序。预期的输出是:

Id       Name       parentId
5         ABC        0 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server parent-child sql-order-by

5
推荐指数
1
解决办法
1352
查看次数

标签 统计

parent-child ×1

sql ×1

sql-order-by ×1

sql-server ×1