在下 SQL 排序時,有時排序的欄位內容值是 null,這往往會造成一些困擾。

在 Oracle 中,預設的行為是 null 會被當成最大值,也就是在 ASC 時會排在最後,DESC 則在最前面。

關於欄位的 null 值,Oracle 有一些函式如:NVL、DECODE 來將 null 值轉成使用者預設的值,甚至

也可以用 CASE 語法來將 null 轉成想要的值,但以下介紹的是另一種 Oracle 提供的語法:

nulls first」與「nulls last」,這個語法是 Oracle order by 所支援的語法,用法如下:

.將 null 值排在最前面

  SELECT * FROM MyTable ORDER BY id NULLS FIRST;

.將 null 值排在最後面

  SELECT * FROM MyTable ORDER BY id NULLS LAST;

 

參考來源:
  Oracle 排序中常用的NULL值處理方法

arrow
arrow
    全站熱搜

    大笨鳥 發表在 痞客邦 留言(0) 人氣()