SQL利用Case When Then Else End 多條件判斷


Select

Case

    When a is not null then a

    When b is not null then b

    When c is not null then c

    When d is not null then d

    Else ''

End 列名

From Table Name 

Case具有兩種格式。簡單Case函數和Case搜索函數。 
--簡單Case函數 
CASE sex 
WHEN '1' THEN '男' 
WHEN '2' THEN '女' 
ELSE '其他' END 
--Case搜索函數 
CASE WHEN sex = '1' THEN '男' 
WHEN sex = '2' THEN '女' 
ELSE '其他' END 

這兩種方式,可以實現相同的功能。簡單Case函數的寫法相對比較簡潔,但是和Case搜索函數相比,功能方面會有些限制,比如寫判斷式。 
還有一個需要注意的問題,Case函數只返回第一個符合條件的值,剩下的Case部分將會被自動忽略。
兩者中可以根據不同的需求來選擇

SELECT @rownum:=@rownum+1 rownum, 姓名,統計個數,最新創建時間
FROM (
SELECT @rownum:=0,
CASE email
WHEN 'bai@163.com' THEN '白'
WHEN 'hei@163.com' THEN '黑'
WHEN 'cai@163.com' THEN '采'
WHEN 'weizhen.li@163.com' THEN '李煒臻'
WHEN 'wangbo@163.com' THEN '王波'
WHEN 'mao@163.com' THEN '毛'
WHEN 'liu@163.com' THEN '劉' 
WHEN 'cy@163.com' THEN '采' 
ELSE '其他' END 姓名,count(*) 統計個數,MAX(createTime) 最新創建時間
from ali_edas_app
GROUP BY CASE email
WHEN 'bai@163.com' THEN '白'
WHEN 'hei@163.com' THEN '黑'
WHEN 'cai@163.com' THEN '采'
WHEN 'weizhen.li@163.com' THEN '李煒臻'
WHEN 'wangbo@163.com' THEN '王波'
WHEN 'mao@163.com' THEN '毛'
WHEN 'liu@163.com' THEN '劉'
WHEN 'cy@163.com' THEN '采'
ELSE '其他' END
) m


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM