MySQL中的CASE WHEN语句

MySQL中的CASE WHEN语句

MySQL中的CASE WHEN语句

在MySQL中,CASE WHEN语句是一种用于执行条件判断的表达式。它类似于编程语言中的switch语句,可以根据指定的条件来执行不同的逻辑操作。CASE WHEN语句可以用在SELECT语句中作为条件表达式,也可以用在UPDATE和DELETE语句中进行修改和删除操作。

语法

CASE WHEN语句的基本语法如下:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE default_result
END
  • CASECASE WHEN语句的开始关键字。
  • WHEN condition1 THEN result1表示如果满足condition1条件,则返回result1结果。
  • ELSE default_result表示如果以上条件都不满足,则返回default_result结果。
  • END表示CASE WHEN语句的结束。

示例

示例数据库表

为了演示CASE WHEN语句的用法,我们首先创建一个名为students的示例表,包含学生的姓名和分数信息。

CREATE TABLE students (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    score INT NOT NULL
);

INSERT INTO students (name, score) VALUES
('Alice', 85),
('Bob', 65),
('Charlie', 75),
('David', 90),
('Eve', 55);

查询示例

假设我们想要根据学生的分数等级来进行查询,可以使用CASE WHEN语句实现。

SELECT 
    name,
    score,
    CASE
        WHEN score >= 90 THEN 'A'
        WHEN score >= 80 THEN 'B'
        WHEN score >= 70 THEN 'C'
        WHEN score >= 60 THEN 'D'
        ELSE 'F'
    END AS grade
FROM students;

运行以上查询,将会得到如下结果:

+---------+-------+-------+
| name    | score | grade |
+---------+-------+-------+
| Alice   | 85    | B     |
| Bob     | 65    | D     |
| Charlie | 75    | C     |
| David   | 90    | A     |
| Eve     | 55    | F     |
+---------+-------+-------+

以上查询根据学生的分数将其等级分为’A’、’B’、’C’、’D’和’F’等级。

更新示例

除了在查询中使用,CASE WHEN语句也可以用在更新数据时的条件判断中。

UPDATE students
SET
    score = CASE
        WHEN score >= 90 THEN score + 5
        WHEN score >= 80 THEN score + 3
        ELSE score
    END;

运行以上更新语句,将会根据学生的分数等级增加不同的分数:

+---------+-------+-------+
| name    | score | grade |
+---------+-------+-------+
| Alice   | 90    | B     |
| Bob     | 68    | D     |
| Charlie | 78    | C     |
| David   | 95    | A     |
| Eve     | 55    | F     |
+---------+-------+-------+

以上更新操作根据学生的分数等级增加了相应的分数。

总结

通过以上示例,我们可以看到CASE WHEN语句在MySQL中的灵活应用。它可以根据不同的条件执行不同的逻辑操作,适用于查询、更新、删除等多种数据库操作中的条件判断场景。在实际开发中,灵活运用CASE WHEN语句可以简化SQL语句的编写,提高数据处理效率。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程