admin 管理员组文章数量: 1184232
2024年5月15日发(作者:volatile用法和案例)
mysql case when使用方法
一、简介
在MySQL中,Case When语句是一种条件语句,可以根据条件执
行不同的操作。它可以与SELECT、UPDATE、DELETE等语句结合使用,
根据不同的条件返回不同的结果。Case When语句的基本语法如下:
```scss
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
```
其中,condition是判断条件,result是满足条件时要执行的操
作或返回的结果。
二、使用方法
1. 基本用法
Case When语句的基本用法很简单,只需要在SELECT、UPDATE或
DELETE语句中添加相应的条件即可。例如,以下是一个简单的SELECT
语句,使用Case When语句根据性别返回不同的姓名:
```sql
SELECT name,
CASE
WHEN gender = '男' THEN '男姓名'
第 1 页 共 3 页
WHEN gender = '女' THEN '女姓名'
ELSE '未知'
END AS gender_name
FROM persons;
```
2. 嵌套使用
Case When语句可以嵌套使用,即在满足一个条件的基础上再执
行另一个条件。例如,以下是一个查询工资大于等于5000的员工姓名
和工资的语句:
```sql
SELECT name, salary
FROM employees
WHERE salary >= 5000
AND (salary < 10000 OR (gender = '女' AND age < 30))
AND (CASE
WHEN department = 'IT' THEN 'IT部门'
ELSE '其他部门'
END) = 'IT部门';
```
在这个例子中,使用了嵌套的Case When语句,先判断部门是否
为IT部门,再根据性别和年龄的条件进行筛选。最后使用外部的Case
When语句根据性别和部门进行最终的筛选。
3. Case When与Else子句配合使用
第 2 页 共 3 页
除了使用Else子句来指定如果不满足任何条件时应执行的操作
外,还可以直接使用其他的运算符或表达式作为结果。例如,以下是
一个查询年龄大于等于35岁且性别为女员工的语句:
```sql
SELECT name, salary, age, gender, department
FROM employees
WHERE age >= 35 AND gender = '女'
AND (CASE
WHEN salary < 5000 THEN '低薪' -- 当工资小于
5000时,返回“低薪”结果
ELSE (CASE
WHEN department = 'IT' THEN 'IT部门'
-- 当部门为IT部门时,返回“IT部门”结果
ELSE '其他部门' -- 当部门不为IT部门
时,返回“其他部门”结果
END) -- 使用Else子句指定默认结果为“其他
部门”结果
END) = 'IT部门'; -- 使用外部的Case When语句进行
最终筛选
```
以上就是MySQL中Case When的使用方法。通过灵活运用Case
When语句,可以根据不同的条件执行不同的操作,从而实现更复杂的
查询和筛选。
第 3 页 共 3 页
版权声明:本文标题:mysql case when使用方法 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1715781880a688953.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论