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
到此这篇关于sql查询排序将null值排到最后的两种解决方法的文章就介绍到这了,更多相关sql查询将null值排最后内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论