mysql case when 用法多条件

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 语句,提高查询的效率和准确性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程