oracle怎么以时间排序,oracle指定数据排序在前面怎么处理
最近工作碰到客戶的特殊要求,需要將特定的數據排序在前面,然后才按時間順序排序,這個之前還真沒有碰到過,好在有萬能的度娘,搜索了一下,發現可以實現,使用order by decode語句即可。
對于order by熟悉SQL的朋友都知道了,而decode是oracle的函數,解釋如下:
語法使用:DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )
Value 代表某個表的任何類型的任意列或一個通過計算所得的任何結果。當每個value值被測試,如果value的值為if1,Decode 函數的結果是then1;如果value等于if2,Decode函數結果是then2;等等。事實上,可以給出多個if/then 配對。如果value結果不等于給出的任何配對時,Decode 結果就返回else 。
總結:簡單來說就是if then的使用集合在一個函數中。有了這個函數,不但讓SQL更簡潔,而且可以應用到多處場合,今天說說應用于order by 之后,讓指定內容排在前面。
例如有如下表TEST:
編號
姓名
年齡
分數
A001
小紅
20
90
A002
小藍
31
100
A003
小黑
27
98
A004
小白
35
93
A004
小紫
25
100
要求,25歲排序在前面,然后按分數排序,這時就需要使用order by decode語句了。
查詢語句為:
SELECT * FROM TEST ORDER BY DECODE(年齡,25,分數)
查詢結果如下:
這就是DECODE函數強大之處,在SQL SERVER或MY SQL等數據庫,估計實現這樣的排序會有點復雜,但ORACLE中只需要order by decode卻可。
等等,別走! ^_^
好消息,快手官方發紅包啦,登錄即送2元,秒提現! 查看詳情>>
總結
以上是生活随笔為你收集整理的oracle怎么以时间排序,oracle指定数据排序在前面怎么处理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 调用不存在的方法 统一处理
- 下一篇: 串口服务器信号连接不上,使用RS485串