国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本不卡免费一区二区三区综合久久 | 91久久九色 | 精品国产乱码久久久久久丨区2区 | 精品国产乱码久久久久久影片 | 久久国产亚洲 | 搞黄视频在线观看 | 亚洲激情在线视频 | 免费视频爱爱太爽了 | 成人av在线网站 | 中文字幕视频在线 | 日日骚一区 | 久久99精品久久久久久水蜜桃 | a∨色狠狠一区二区三区 | 日韩中文一区二区 | 久久大 | 岛国一区| 懂色av一区二区三区免费观看 | 欧美国产91| 欧美成人精品一区二区三区 | 欧美freesex交免费视频 | 久久精品一区二区三区四区 | 国产精品一区二区三区四区 | 操操av | 日韩不卡一区二区三区 | av色综合| 毛片免费观看网址 | 激情综合五月天 | 欧美视频一二三区 | 中文字幕一区二区三区日韩精品 | 国产1页 | 这里只有精品视频 | www.日韩系列 | 日韩成人精品 | 欧美自拍偷拍 | 久久精品久久久久电影 | 爱色av入口 | 成人午夜在线视频 | 色视频在线免费看 | 激情综合五 | 亚洲国产一二区 | 一区二区三区在线 |