SQL Server、Oracle資料庫排序空值null問題解決辦法)

來源:互聯網
上載者:User

 

【sqlserver】:

sqlserver 認為 null 最小。

升序排列:null 值預設排在最前。

要想排後面,則:order by case when col is null then 1 else 0 end ,col

降序排列:null 值預設排在最後。

要想排在前面,則:order by case when col is null then 0 else 1 end , col desc

【oracle】:

oracle認為 null 最大。

升序排列,預設情況下,null值排後面。

降序排序,預設情況下,null值排前面。

有幾種辦法改變這種情況:

(1)用 nvl 函數或decode 函數 將null轉換為一特定值

(2)用case文法將null轉換為一特定值(oracle9i以後版本支援。和sqlserver類似):
order by (case mycol when null then '北京漂客' else mycol end)

(3)使用nulls first 或者nulls last 文法。

這是oracle專門用來null值排序的文法。

nulls first :將null排在最前面。如:select * from mytb order by mycol nulls first

null last :將null排在最後面。如:select * from mytb order by mycol nulls last

如果要想讓含有null的列按照自己的意願進行排序,可做如上處理。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.