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/