我有一个“用户”表,其数据如下
id firstname lastname
1 NULL NULL
2 NULL NULL
3 Tim Kanter
4 John Mathews
5 Brady Allen
我需要按名字获取记录顺序,但非空记录应按升序排在第一位。因此,我怎样才能得到这样的输出
id firstname lastname
5 Brady Allen
4 John Mathews
3 Tim Kanter
1 NULL NULL
2 NULL NULL
最佳答案
试试这个:
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 中查看结果.
关于mysql - 排序记录并在顶部获取非空记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23167020/