oracle中的 order by
阿新 • • 發佈:2021-12-15
現有的一個表:
- 單個欄位的升序排列,預設是升序,也可以是 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升序排列