MySQL 的 case when 的语法有两种:
1.简单函数 (比较col_name和when后面的值是否相等)
CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END
2.搜索函数 (判断when后面的表达式expr是否为true,如果为true,则返回result1)
CASE WHEN [expr] THEN [result1]…ELSE [default] END
两种语法的区别
简单函数
CASE [col_name] WHEN [value1] THEN [result1]…ELSE [default] END: 枚举这个字段所有可能的值
SELECT
NAME '树名',
CASE NAME
WHEN '桃树' THEN
'桃花'
WHEN '梨树' THEN
'梨花'
WHEN '芙蓉' THEN
'莲花'
ELSE
'无名花'
END '花名'
FROM
tree_info;
查询结果:
搜索函数
CASE WHEN [expr] THEN [result1]…ELSE [default] END
:搜索函数可以写判断,并且搜索函数只会返回第一个符合条件的值,其他case
被忽略
SELECT
age '年龄段',
CASE
WHEN age <= 10 THEN
'不愁'
WHEN age <= 20 THEN
'不悔'
WHEN age <= 30 THEN
'而立'
WHEN age <= 40 THEN
'不惑'
WHEN age <= 50 THEN
'知天命'
WHEN age <= 60 THEN
'耳顺'
ELSE
'年级大了'
END '状态'
FROM
age_info;
查询结果: