我有一张包含以下结构的表格。最后一列parentID显然是与其他行的连接。如果不存在将为0的父级,但不存在第三级层次结构。这意味着如果一行拥有任何父级,则它永远不会拥有任何子级。
ID | Test Name | ParentID
-------------------------------------
1 | A | 0
2 | B | 0
3 | Z | 2
4 | L | 2
5 | D | 2
6 | E | 0
7 | Q | 2
8 | R | 6
9 | S | 2
10 | J | 6
-----------------------------------------------
希望结构清晰。所以我需要一个将返回所有行的查询,但这会根据testname对所有行进行排序,但这也必须保持层次结构。
所以查询的结果应该是
ID | Test Name | ParentID
-------------------------------------
1 | A | 0
2 | B | 0
5 | D | 2
4 | L | 2
7 | Q | 2
9 | S | 2
3 | Z | 2
6 | E | 0
10 | J | 6
8 | R | 6
-----------------------------------------------
答案 0 :(得分:4)
order by case when ParentID = 0
then ID
else ParentID
end,
ParentID,
[Test Name]