是否可以对数据库表进行排序,使NULL值出现在底部?

时间:2019-02-07 05:46:00

标签: mysql database

我有一个名为“ Customers”的数据库表,如下所示:

Sl     Name    Profession
1      ABC     Doctor
2      QWE     Engineer
3      ERT     null
4      DEF     Doctor
5      JGJ     null

我想对这张表进行排序,因为所有带有专业名称的名称都位于开头,而没有专业名称(null)的名称位于底部,例如:

Sl     Name    Profession
1      ABC     Doctor
2      QWE     Engineer
4      DEF     Doctor
5      JGJ     null
3      ERT     null

是否有任何查询可以做到这一点?在此先感谢。

2 个答案:

答案 0 :(得分:2)

默认情况下,MySQL(和大多数SQL风格)中的

NULL排序第一,而不是最后。将NULL值逼到底部的一种通用方法是使用CASEIF表达式:

SELECT
    Sl, Name, Profession
FROM yourTable
ORDER BY
    IF(Profession IS NOT NULL, 0, 1),
    Sl;

答案 1 :(得分:0)

使用order by

select * from table_name
order by case when Profession is not null then 1 else 2 end  

没有DB引擎可以在不使用order by的情况下为您提供订单行