簡潔:
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;
