最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle用decode函數(shù)或CASE-WHEN實(shí)現(xiàn)自定義排序

 更新時(shí)間:2020年05月18日 09:01:09   作者:南瓜慢說  
這篇文章主要介紹了Oracle用decode函數(shù)或CASE-WHEN實(shí)現(xiàn)自定義排序功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1 問題

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

比如字段值為英文字段:Monday、Tuesday、Wednesday等,如果按字段默認(rèn)排序規(guī)則就為:

Friday
Monday
Saturday
Sunday
Thursday
Tuesday
Wednesday

實(shí)際我需要的是:

Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday

2 decode函數(shù)

通過decode函數(shù)可以實(shí)現(xiàn),如下:

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

后面的數(shù)字可以不連續(xù)。

3 case when語句

另外,還可以用case when來實(shí)現(xiàn):

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 總結(jié)

當(dāng)然,把字段直接賦值為對(duì)應(yīng)的數(shù)字效率會(huì)高很多,通過另外一張表再建立映射關(guān)系。

到此這篇關(guān)于Oracle用decode函數(shù)或CASE-WHEN實(shí)現(xiàn)自定義排序的文章就介紹到這了,更多相關(guān)Oracle用decode函數(shù)或CASE-WHEN實(shí)現(xiàn)自定義排序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

松桃| 白朗县| 德保县| 阜阳市| 福建省| 固镇县| 上饶市| 耒阳市| 曲阜市| 商城县| 五常市| 河北省| 嘉义县| 宜兰县| 江孜县| 开封市| 育儿| 三穗县| 云阳县| 河源市| 临江市| 板桥市| 永城市| 无极县| 双牌县| 塘沽区| 公安县| 柏乡县| 全南县| 南宫市| 鹤壁市| 临夏市| 高安市| 罗甸县| 柏乡县| 文成县| 延安市| 新巴尔虎左旗| 禹城市| 武威市| 东乌珠穆沁旗|