2024年08月10日 mysql case when 用法多条件 极客笔记

在 MySQL 中,CASE WHEN 语句是一种条件语句,用于根据不同的条件执行不同的操作。CASE WHEN 语句可以根据给定的条件表达式来选择不同的结果。在本文中,我们将详细讨论 CASE WHEN 语句的多条件用法。
CASE WHEN 语句的基本语法如下:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
condition1, condition2 等是条件表达式,可以是单个条件或多个条件的组合。result1, result2 等是根据条件执行的结果。default_result 是当所有条件都不满足时的默认结果。在 CASE WHEN 语句中,我们可以使用多个条件来进行判断,例如:
SELECT
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END AS grade
FROM students;
上面的示例中,根据学生的分数,判断其所属的等级。
我们还可以在 CASE WHEN 语句中使用多个条件的组合来进行判断,例如:
SELECT
CASE
WHEN gender = '男' AND age > 25 THEN '中年男性'
WHEN gender = '男' AND age <= 25 THEN '青年男性'
WHEN gender = '女' AND age > 25 THEN '中年女性'
WHEN gender = '女' AND age <= 25 THEN '青年女性'
END AS category
FROM employees;
上面的示例中,根据员工的性别和年龄来判断其所属的类别。
假设有如下 students 表:
| id | name | score |
|---|---|---|
| 1 | 小明 | 85 |
| 2 | 小红 | 55 |
| 3 | 小刚 | 95 |
| 4 | 小美 | 75 |
我们可以使用以下 SQL 语句来根据学生的分数判断其等级:
SELECT
name,
score,
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 60 THEN '及格'
ELSE '不及格'
END AS grade
FROM students;
运行以上 SQL 语句,得到如下结果:
| name | score | grade |
|---|---|---|
| 小明 | 85 | 良好 |
| 小红 | 55 | 不及格 |
| 小刚 | 95 | 优秀 |
| 小美 | 75 | 及格 |
通过本文的介绍,我们了解了 MySQL 中 CASE WHEN 语句的多条件用法。通过多条件判断和多条件组合,我们可以根据不同的情况执行不同的操作,使得 SQL 查询更加灵活多样。在实际应用中,可以根据具体的需求和业务逻辑,灵活运用 CASE WHEN 语句,提高查询的效率和准确性。
本文链接:http://so.lmcjl.com/news/10490/