我有一个表“用户”,其数据类似
id firstname lastname
1 NULL NULL
2 NULL NULL
3 Tim Kanter
4 John Mathews
5 Brady Allen
我需要通过firstname获取记录顺序,但非空记录应该按升序排在第一位。因此,我如何获得像
这样的输出id firstname lastname
5 Brady Allen
4 John Mathews
3 Tim Kanter
1 NULL NULL
2 NULL NULL
答案 0 :(得分:2)
试试这个:
SELECT * FROM TableName
ORDER BY CASE WHEN firstname IS NULL THEN 1 ELSE 0 END, firstname
结果:
ID FIRSTNAME LASTNAME
5 Brady Allen
4 John Mathews
3 Tim Kanter
1 (null) (null)
2 (null) (null)
请参阅SQL Fiddle中的结果。
答案 1 :(得分:0)
您可以使用UNION
执行此操作:
SELECT * FROM (SELECT * FROM table WHERE firstname IS NOT null
ORDER BY firstname) AS `t1`
UNION
SELECT * FROM table WHERE firstname IS null