我有一张看起来像这样的表
id parent_id name address email telephone
2 NULL name address email phone
3 NULL name2 address2 email2 phone2
4 NULL name3 address3 email3 phone3
5 NULL name4 address4 email4 phone4
6 NULL name6 email6 phone6
7 5 name7 email7 phone7
8 NULL name8 email8 phone8
我想对它做一个SELECT,所以我选择了所有的行,但如果一行有父,它将显示在父行之后。所以在这种情况下,行看起来像这样
id parent_id name address email telephone
2 NULL name address email phone
3 NULL name2 address2 email2 phone2
4 NULL name3 address3 email3 phone3
5 NULL name4 address4 email4 phone4
7 5 name7 email7 phone7
6 NULL name6 email6 phone6
8 NULL name8 email8 phone8
id = 7的行在id = 6的行之前,因为id = 7的那个的parent_id是5,所以它直接放在该行之后。
答案 0 :(得分:0)
您可以在case
子句中使用order by
语句来执行此操作:
select *
from yourtable
order by case when parentid is null then id else parentid end, parentid