[參考](https://blog.csdn.net/helloxiaozhe/article/details/78124138
)
MySQL case when例子介紹
1淆九、 使用帶有簡單 CASE 函數(shù)的 SELECT 語句
在 SELECT 語句中,簡單 CASE 函數(shù)僅檢查是否相等才写,而不進(jìn)行其它比較
SELECT
CASE parent_id
WHEN 0 THEN
'00'
WHEN 1 THEN
'11'
ELSE
'OTHERS'
END AS parent_id_new ,
parent_id ,
type_id ,
type_name
FROM
tdb_goods_types
20170928154146204.png
2鬼店、使用帶有簡單 CASE 函數(shù)和 CASE 搜索函數(shù)的SELECT 語句
在 SELECT 語句中黄伊,CASE 搜索函數(shù)允許根據(jù)比較值在結(jié)果集內(nèi)對值進(jìn)行替換捉兴。
SELECT
CASE
WHEN parent_id < 3 THEN
'<3'
WHEN parent_id >= 3
AND parent_id < 5 THEN
'>=3 && <5'
ELSE
'>=5'
END AS parent_id_new ,
parent_id ,
type_id ,
type_name
FROM
tdb_goods_types
20170928154104454.png
3抡蛙、CASE 可能是 SQL 中被誤用最多的關(guān)鍵字之一。
雖然莫其,可能以前用過這個關(guān)鍵字來創(chuàng)建字段癞尚,但是它還具有更多用法。
例如乱陡,可以在 WHERE 子句中使用 CASE浇揩。或者在 GROUP BY 子句中使用 CASE
使用CASE WHEN進(jìn)行字符串替換處理,稍加深入憨颠,還可以得到以前認(rèn)為不可能得到的分組排序結(jié)果集胳徽。
SELECT
CASE
WHEN parent_id < 3 THEN
'<3'
WHEN parent_id >= 3
AND parent_id < 5 THEN
'>=3 && <5'
ELSE
'>=5'
END AS parent_id_new ,
count(*) AS num_count ,
parent_id ,
type_id ,
type_name
FROM
tdb_goods_types
GROUP BY
parent_id_new
ORDER BY
num_count
20170928154124615.png