SQL CASE WHEN多条件

SQL CASE WHEN多条件

SQL CASE WHEN多条件

在SQL语句中,我们经常需要根据给定的条件来做出不同的处理。CASE WHEN语句是一种强大的工具,可以根据条件来进行多种操作。本文将详细介绍SQL中CASE WHEN语句的使用和常见的示例。

1. 语法

SQL中的CASE WHEN语句可以根据给定的条件和结果进行多条件判断。它的基本语法如下:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    WHEN conditionN THEN resultN
    ELSE default_result
END
  • CASE关键字用于开始CASE WHEN语句。
  • WHEN关键字后面跟着一个条件表达式,如果条件表达式为真,则执行对应的结果表达式。
  • THEN关键字用于指定当条件表达式为真时要执行的结果表达式。
  • 可以有多个WHEN子句,每个子句都对应不同的条件和结果。
  • ELSE关键字用于指定当条件都不满足时要执行的默认结果表达式。
  • END关键字用于结束CASE WHEN语句。

2. 示例

为了更好地理解CASE WHEN语句的用法,下面将给出几个常见的示例。

2.1 根据成绩进行等级划分

假设我们有一个学生表students,其中包含学生的姓名和成绩。现在我们想根据成绩将学生分为优秀、良好、及格和不及格四个等级。可以使用CASE WHEN语句来实现。

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

运行结果示例:

name score grade
张三 92 优秀
李四 85 良好
王五 72 及格
赵六 55 不及格

2.2 根据性别和年龄分组统计人数

假设我们有一个员工表employees,其中包含员工的姓名、性别和年龄。现在我们想按照性别和年龄分组,并统计每个组的人数。

SELECT
    sex,
    CASE
        WHEN age >= 20 AND age <= 30 THEN '20-30岁'
        WHEN age > 30 AND age <= 40 THEN '31-40岁'
        WHEN age > 40 AND age <= 50 THEN '41-50岁'
        ELSE '其他'
    END AS age_group,
    COUNT(*) AS count
FROM
    employees
GROUP BY
    sex,
    age_group;

运行结果示例:

sex age_group count
20-30岁 50
31-40岁 45
41-50岁 30
其他 10
20-30岁 60
31-40岁 55
41-50岁 40
其他 5

3. 总结

使用CASE WHEN语句可以在SQL查询中根据给定的条件来进行多条件判断,从而实现不同的结果。它的语法简单明了,灵活易用,可以有效提高SQL查询的灵活性和可读性。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程