引言
在sql查询语句中,case语句是一个强大的条件表达式工具,它可以实现复杂的逻辑判断和计算,在mysql数据库中。case when结构允许开发者根据不同的条件执行不同的操作,类似于编程语言中的if-else语句
case when 的基本语法
1.简单搜索,基于字段值
示例:
case column_name
when value1
then result1
when values2
then result2
else
default value
end
这里的case when用法为比较特定列的值和一系列预定义的值,并返回对应的结果。若与对应的value对应,则返回对应的result,否则返回else里面的默认值
SELECT
id,
CASE status
WHEN 'active' THEN '已激活'
WHEN 'inactive' THEN '未激活'
ELSE '未知状态'
END AS 'status_label'
FROM users;
2.搜索函数
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
[ELSE default_value]
END
基于任意条件进行判断,不仅仅依赖列的值
SELECT
id,
name,
CASE
WHEN age > 18 THEN '成年人'
WHEN age BETWEEN 6 AND 18 THEN '未成年人'
ELSE '婴幼儿'
END AS 'age_group'
FROM people;
在这里,根据age字段值的不同范围,分类为不同的年龄组别
力扣例题:
select
e.employee_id,
case
when e.employee_id%2=1 and e.name not like 'M%'
then e.salary
else 0
end as bonus
from
Employees as e
order by
e.employee_id;