sql 如何优先显示不为空的字段 并进行排序

Posted 一只西瓜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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]进行排序

注:以上结果是在oracle11g及mysql5下的测试结果。

 

因此当我们在order by时,为了强制说明对于null的排序顺序就必须使用到:

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

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

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

order by IF(ISNULL(my_field),1,0),my_field; 

转自:http://blog.csdn.net/oxcow/article/details/6554168

以上是关于sql 如何优先显示不为空的字段 并进行排序的主要内容,如果未能解决你的问题,请参考以下文章

在查询SQL语句中为空或者不为空的字段应该怎么写?

Oracle中查询某字段不为空的SQL语句怎么写

sql查询不为空的字段

获取两个字段中不为空的那个字段 ---SQL

在查询SQL语句中为空或不为空怎么写

php 判断一个字段是不是为空,为空的话执行一段sql语句