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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM