2014年3月12日 星期三

MySQL Case When 語法

MySQL  Case  When 語法

語法

(1) Case when 欄位=值1 then 文字1 when 欄位=值2 then 文字2 else null End


(2) SELECT CASE ("欄位名")   WHEN "條件1" THEN "結果1"
               WHEN "條件2" THEN "結果2"
                ...
                [ELSE "結果N"]              
               END
    FROM "表格名";


狀況應用

現在要從資料庫中取得月份後排序,但月份中有0的月份
如果是1~12,要由小到大
如果是0~12,要由小到大,但0要排在12後面

所以我用ORDER BY + Case  When來排序

(1) ORDER BY CASE month WHEN 0 THEN 0 ELSE 1 END desc,month asc
(2) ORDER BY CASE WHEN month = 0 THEN 0 ELSE 1 END desc,month asc

先處理當month 為0的時候,顯示0並且使用desc(由大到小排序)
因為是0應該是最小的,所以接著安心地排列其他的
使用asc(由小排到大組合)

顯示結果
1 2 3 ... 10 11 12 0


參考
http://www.dotblogs.com.tw/nemochen/archive/2010/07/25/16789.aspx

沒有留言:

張貼留言