mysql case when 用法多条件

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

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 是当所有条件都不满足时的默认结果。

多条件用法

1. 多条件判断

CASE WHEN 语句中,我们可以使用多个条件来进行判断,例如:

SELECT 
    CASE
        WHEN score >= 90 THEN '优秀'
        WHEN score >= 80 THEN '良好'
        WHEN score >= 60 THEN '及格'
        ELSE '不及格'
    END AS grade
FROM students;

上面的示例中,根据学生的分数,判断其所属的等级。

2. 多条件组合

我们还可以在 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 及格

总结

通过本文的介绍,我们了解了 MySQLCASE WHEN 语句的多条件用法。通过多条件判断和多条件组合,我们可以根据不同的情况执行不同的操作,使得 SQL 查询更加灵活多样。在实际应用中,可以根据具体的需求和业务逻辑,灵活运用 CASE WHEN 语句,提高查询的效率和准确性。

本文链接:http://so.lmcjl.com/news/10490/

展开阅读全文