一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Oracle - Oracle用decode函數或CASE-WHEN實現自定義排序

Oracle用decode函數或CASE-WHEN實現自定義排序

2020-06-16 15:44南瓜慢說 Oracle

這篇文章主要介紹了Oracle用decode函數或CASE-WHEN實現自定義排序功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下

1 問題

SQL排序,只要在order by后面加字段就可以了,可以通過加descasc來選擇降序或升序。但排序規則是默認的,數字、時間、字符串等都有自己默認的排序規則。有時候需要按自己的想法來排序,而不是按字段默認排序規則。

比如字段值為英文字段:MondayTuesdayWednesday等,如果按字段默認排序規則就為:

Friday
Monday
Saturday
Sunday
Thursday
Tuesday
Wednesday

實際我需要的是:

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

2 decode函數

通過decode函數可以實現,如下:

?
1
2
3
4
5
6
7
8
9
10
11
select * from table_date
order by
decode(DateStr,
  'Monday',1
  'Tuesday',2
  'Wednesday',3
  'Thursday',4
  'Friday',5
  'Saturday',6
  'Sunday',7,
  0);

后面的數字可以不連續。

3 case when語句

另外,還可以用case when來實現:

?
1
2
3
4
5
6
7
8
9
10
11
select * from table_date
order by (CASE DateStr
  WHEN 'Monday' then 1
  WHEN 'Tuesday' then 2
  WHEN 'Wednesday' then 3
  WHEN 'Thursday' then 4
  WHEN 'Friday' then 5
  WHEN 'Saturday' then 6
  WHEN 'Sunday' then 7
   ELSE 0
   END);

4 總結

當然,把字段直接賦值為對應的數字效率會高很多,通過另外一張表再建立映射關系。

到此這篇關于Oracle用decode函數或CASE-WHEN實現自定義排序的文章就介紹到這了,更多相關Oracle用decode函數或CASE-WHEN實現自定義排序內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://www.cnblogs.com/larrydpk/archive/2020/05/18/12907913.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲国产精品嫩草影院永久 | 亚洲AV蜜桃永久无码精品红樱桃 | 女教师的一级毛片 | 国产91精选在线观看麻豆 | 耽美调教高h | 狠狠涩| 国产精品合集一区二区 | 麻豆视频网| 含羞草传媒网站免费进入欢迎 | 9966久久精品免费看国产 | 亚欧精品在线观看 | 亚洲欧美久久久久久久久久爽网站 | v视界影院_vsjla | 午夜看片a福利在线观看 | 欧美一区高清 | 俄罗斯13一14处出血视频在线 | 国产女王女m视频vk 国产农村一级特黄α真人毛片 | 九九99九九精彩网站 | 色综合久久夜色精品国产 | 欧美老肥妇bbbw | 3p文两男一女办公室高h | adult video在线观看 | 天天色综 | 亚洲色大成网站www久久九九 | 精品精品国产自在香蕉网 | 亚洲福利精品电影在线观看 | 国内小情侣一二三区在线视频 | 91网红福利精品区一区二 | 美女扒开腿让男人桶爽免费gif | 久久热在线视频精品店 | 激情三级做爰在线观看激情 | 星星动漫无删减在线观看 | avtt在线播放 | 国产精品免费视频一区一 | 网站久久| 岛国a香蕉片不卡在线观看 荡女淫春2古装 | 亚洲99久久无色码中文字幕 | 精品日本三级在线观看视频 | 色综合视频在线观看 | 免费观看美女被cao视频 | 99热在线获取最新地址 |