SQL中的case when then else end用法


簡潔:

case屬於控制流函數,屬於mysql函數的范圍。類似的還有ifnull,nullif等。

使用方法:

-- 簡單Case函數,更簡潔
CASE sex
         WHEN '1' THEN ''
         WHEN '2' THEN ''
ELSE '其他' END

-- Case搜索函數,更靈活
CASE WHEN sex = '1' THEN ''
         WHEN sex = '2' THEN ''
ELSE '其他' END

注意,只匹配第一個正確答案,后面的不管。

使用場景:

接select后面,修改展示內容;接group by后面,修改分組依據。

update的更新條件。

SELECT
        CASE WHEN salary <= 500 THEN '1'
             WHEN salary > 500 AND salary <= 600  THEN '2'
             WHEN salary > 600 AND salary <= 800  THEN '3'
             WHEN salary > 800 AND salary <= 1000 THEN '4'
        ELSE NULL END salary_class,
        COUNT(*)
FROM    Table_A
GROUP BY
        CASE WHEN salary <= 500 THEN '1'
             WHEN salary > 500 AND salary <= 600  THEN '2'
             WHEN salary > 600 AND salary <= 800  THEN '3'
             WHEN salary > 800 AND salary <= 1000 THEN '4'
        ELSE NULL END;
UPDATE Personnel
SET salary = CASE WHEN salary >= 5000
             THEN salary * 0.9
WHEN salary >= 2000 AND salary < 4600
THEN salary * 1.15
ELSE salary END;

代碼來源於:https://www.cnblogs.com/prefect/p/5746624.html


免責聲明!

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



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