SQL查询排序如何将null值排到最后
本文介绍在SQL查询排序时,如果遇到NULL值,如何根据实际业务需求,控制将NULL值排在最后或最前边。
1、问题现象描述
在进行SQL查询排序时,如果遇到null值,一般默认都排在最上边,如下图所示:
SELECT id, lon from merchant_info ORDER BY lon
如果想将NULL值排在最后边该如何操作呢?,可以采用下边的两种解决方案:
2、 解决方法一
如果使用的是ORACLE、SQL Server、DB2等数据库,可以使用 NULLS LAST 进行排序将NULL排到最后边。
SELECT id, lon from merchant_info ORDER BY lon NULLS LAST
如果进行降序排列时,想将NULL排在最前边可以使用 NULLS FIRST。
SELECT id, lon from merchant_info ORDER BY lon desc NULLS FIRST
3、解决方法二
如果使用的MySQL数据库,则方法一不会生效,可以使用IF(ISNULL(lon),1,0) 将NULL排在最后:
SELECT id, lon from merchant_info ORDER BY IF(ISNULL(lon),1,0), lon
如果进行降序排列,想将NULL值排在最前,可以使用IF(ISNULL(lon),0,1):
SELECT id, lon from merchant_info ORDER BY IF(ISNULL(lon),0,1), lon DESC
扫描下方二维码,关注公众号:程序进阶之路,实时获取更多优质文章推送。
扫码关注