1. 程式人生 > 其它 >oracle中的 order by

oracle中的 order by

現有的一個表:

  • 單個欄位的升序排列,預設是升序,也可以是 asc;降序排列,desc;

  • oracle在order by時認為null是最大值, 所以如果是asc升序則排在最後, desc降序則排在最前.我們可以使用nulls first或者nulls last來控制null的位置;

  • 當對多個欄位進行排序,選對 stuname降序排列,如果stuname相同,則按照stuid降序排列;

  • 結合函式 decode() 函式來使用

DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )

  Value 代表某個表的任何型別的任意列或一個通過計算所得的任何結果。當每個value值被測試,如果value的值為if1,Decode 函式的結果是then1;如果value等於if2,Decode函式結果是then2;等等。事實上,可以給出多個if/then 配對。如果value結果不等於給出的任何配對時,Decode 結果就返回else;

  • stuid為8的排在第一位:
  • stuid為8的排在第一位,其他的按照stuid降序排列
  • stuname為 以A開頭的最先顯示,剩下的按照 stuname升序排列