自定義sql_SQL 進階:使用case when 表示式實現自定義排序
阿新 • • 發佈:2021-01-20
技術標籤:自定義sql
我們經常使用order by 進行排序,如何1,2,3或者A,B,C。那麼如何讓資料按照自己的想法進行排序呢?下面我們以一個例子來說明吧。
原資料
我們要實現資料按B,A,D,C的順序進行排序。
思路
使用case when 將A,B,C,D轉換為2,1,4,3,這樣在我們再使用order by實現資料的自定義重排。
程式碼如下:
#自定義排序B-A-D-C select * from test1 order by case key1 when 'B' then 1 when 'A' then 2 when 'D' then 3 when 'C' then 4 end
實現的效果如下:
這樣,我們就實現了自定義排序,感興趣的同學可以自己動手試一試。下面貼上整個實驗的程式碼塊
#建立測試表test1 create table test1 ( key1 varchar(4) not null, x int, y int, z int); #插入練習資料 insert into test1 values('A',1,2,3); insert into test1 values('B',5,5,2); insert into test1 values('C',4,7,1); insert into test1 values('D',3,3,8); #自定義排序B-A-D-C select * from test1 order by case key1 when 'B' then 1 when 'A' then 2 when 'D' then 3 when 'C' then 4 end