新聞中心
MySQL中的CASE語句是一種條件表達式,用于在查詢中進行條件判斷,它允許你根據(jù)一個或多個條件來返回不同的值,CASE語句有兩種形式:簡單CASE和搜索CASE。

安源ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!
簡單CASE語句
簡單CASE語句的語法如下:
CASE value
WHEN [compare_value] THEN result
[WHEN [compare_value] THEN result ...]
[ELSE result]
END
value是要進行比較的值,compare_value是與之進行比較的值,result是匹配到的compare_value對應(yīng)的結(jié)果,如果沒有匹配到任何compare_value,則返回ELSE后面的結(jié)果。
以下查詢將根據(jù)員工的工資等級(salary_grade)返回相應(yīng)的獎金(bonus):
SELECT name, salary,
CASE salary_grade
WHEN 1 THEN '低'
WHEN 2 THEN '中'
WHEN 3 THEN '高'
ELSE '未知'
END AS bonus
FROM employees;
搜索CASE語句
搜索CASE語句的語法如下:
CASE
WHEN [condition] THEN result
[WHEN [condition] THEN result ...]
[ELSE result]
END
condition是一個布爾表達式,當其值為TRUE時,返回對應(yīng)的result,如果沒有匹配到任何condition,則返回ELSE后面的結(jié)果。
以下查詢將根據(jù)員工的年齡(age)返回相應(yīng)的年齡段(age_group):
SELECT name, age,
CASE
WHEN age < 30 THEN '青年'
WHEN age >= 30 AND age < 50 THEN '中年'
WHEN age >= 50 THEN '老年'
ELSE '未知'
END AS age_group
FROM employees;
使用CASE語句進行條件排序
除了返回不同的值,CASE語句還可以用于條件排序,以下查詢將根據(jù)員工的年齡段(age_group)進行排序:
SELECT name, age,
CASE
WHEN age < 30 THEN '青年'
WHEN age >= 30 AND age < 50 THEN '中年'
WHEN age >= 50 THEN '老年'
ELSE '未知'
END AS age_group
FROM employees
ORDER BY age_group;
使用CASE語句進行條件分組
CASE語句還可以用于條件分組,以下查詢將統(tǒng)計各個年齡段的員工數(shù)量:
SELECT
CASE
WHEN age < 30 THEN '青年'
WHEN age >= 30 AND age < 50 THEN '中年'
WHEN age >= 50 THEN '老年'
ELSE '未知'
END AS age_group,
COUNT(*) AS count
FROM employees
GROUP BY age_group;
相關(guān)問題與解答
1、CASE語句有哪兩種形式?
答:簡單CASE和搜索CASE。
2、如何在查詢中使用CASE語句進行條件排序?
答:在ORDER BY子句中使用CASE語句。
3、如何在查詢中使用CASE語句進行條件分組?
答:在GROUP BY子句中使用CASE語句。
4、如果在查詢中使用CASE語句時,沒有匹配到任何條件,會返回什么結(jié)果?
答:會返回ELSE后面的結(jié)果,如果沒有設(shè)置ELSE,則會返回NULL。
本文名稱:mysql查詢casewhen
地址分享:http://m.5511xx.com/article/ccdghpd.html


咨詢
建站咨詢
