摘要:MySQL中的CASE WHEN語句是一種強大的數據處理工具,可以根據條件返回不同的結果。本文將介紹10個高效的CASE WHEN用法,幫助你更好地處理數據。
1. 基本用法
CASE WHEN語句的基本用法是根據條件返回不同的值。例如,下面的語句將根據score的值返回不同的等級:
ame,
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'D'
END AS gradets;
2. 多條件判斷
在某些情況下,我們需要根據多個條件返回不同的結果。這時可以使用多個WHEN語句,或者使用邏輯運算符組合多個條件。
WHEN score >= 90 AND score<= 100 THEN 'A'
WHEN score >= 80 AND score< 90 THEN 'B'
WHEN score >= 70 AND score< 80 THEN 'C'
ELSE 'D'
END AS gradets;
3. 嵌套用法
der的值返回不同的等級:
ameder,
CASEder = 'M' THEN
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'D'
ENDder = 'F' THEN
WHEN score >= 95 THEN 'A'
WHEN score >= 85 THEN 'B'
WHEN score >= 75 THEN 'C'
ELSE 'D'
END AS gradets;
4. 空值處理
在處理數據時,我們經常遇到空值的情況。CASE WHEN語句可以處理空值,
WHEN score IS NULL THEN '無成績'
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
ELSE 'D'
END AS gradets;
5. 字符串匹配
CASE WHEN語句可以用于字符串匹配,例如:
ameder,
CASEder LIKE 'M%' THEN '男'der LIKE 'F%' THEN '女'
ELSE '未知'
END AS sexts;
6. IN運算符
CASE WHEN語句可以使用IN運算符, grade,
CASE grade
WHEN 'A' THEN '優秀'
WHEN 'B' THEN '良好'
WHEN 'C' THEN '及格'
ELSE '不及格'
END AS resultts
WHERE grade IN ('A', 'B', 'C');
7. BETWEEN運算符
CASE WHEN語句可以使用BETWEEN運算符,
WHEN score BETWEEN 90 AND 100 THEN 'A'
WHEN score BETWEEN 80 AND 89 THEN 'B'
WHEN score BETWEEN 70 AND 79 THEN 'C'
ELSE 'D'
END AS gradets;
8. 聚合函數
CASE WHEN語句可以與聚合函數一起使用,例如:
SELECT COUNT(*),deralet,deraletts;
9. 多表查詢
CASE WHEN語句可以在多表查詢中使用,例如:
ameame AS course,
WHEN s.score >= 90 THEN '優秀'
WHEN s.score >= 80 THEN '良好'
WHEN s.score >= 70 THEN '及格'
ELSE '不及格'
END AS resultts s
JOIN courses c ON s.course_id = c.id;
10. 子查詢
CASE WHEN語句可以在子查詢中使用, ts) AS avg_
CASEts) THEN '高于平均分'
ELSE '低于平均分'
END AS resultts;
本文介紹了MySQL中CASE WHEN語句的10個高效用法,包括基本用法、多條件判斷、嵌套用法、空值處理、字符串匹配、IN運算符、BETWEEN運算符、聚合函數、多表查詢和子查詢。CASE WHEN語句是一種強大的數據處理工具,掌握好這些用法,可以幫助你更好地處理數據。