order by 语句出现null的情况

本文介绍了在Oracle和MySQL中处理NULL值排序的方法。Oracle通过添加nulls first或nulls last来改变NULL值的位置;而MySQL使用IF(ISNULL())表达式实现相同功能。文章还提供了具体的SQL语句示例。

【Oracle 结论】 
order by colum asc 时,null默认被放在最后
order by colum desc 时,null默认被放在最前
nulls first 时,强制null放在最前,不为null的按声明顺序[asc|desc]进行排序
nulls last 时,强制null放在最后,不为null的按声明顺序[asc|desc]进行排序 
【MySql 结论】
order by colum asc 时,null默认被放在最前
order by colum desc 时,null默认被放在最后
ORDER BY IF(ISNULL(update_date),0,1) null被强制放在最前,不为null的按声明顺序[asc|desc]进行排序
ORDER BY IF(ISNULL(update_date),1,0) null被强制放在最后,不为null的按声明顺序[asc|desc]进行排序

 

 

针对【oracle】我们就需要使用以下语法:

order by order_col [asc|desc] nulls [first|last]  

针对【mysql】我们则需要使用以下语法:

select * from table_name order by IF(ISNULL(字段名),0,1),字段名;  

转载于:https://www.cnblogs.com/HongtaoLiu/p/5868372.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值