MySQL - 在 CASE 中组合多个 WHEN 条件

mysql

1个回答

写回答

MySQL
MySQL

MySQL - 在 CASE 中组合多个 WHEN 条件

MySQL 是一种常用的关系型数据库管理系统,广泛应用于各种应用程序中。在 MySQL 中,CASE 语句可以用于根据条件执行不同的操作。在某些情况下,我们需要在 CASE 语句中组合多个 WHEN 条件,以满足更复杂的需求。本文将介绍如何在 MySQL 中使用 CASE 语句组合多个 WHEN 条件,并提供相应的案例代码。

使用 CASE 语句

CASE 语句是一种条件表达式,它允许我们根据条件执行不同的操作。它的基本语法如下:

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2

...

ELSE result

END

在这个语法中,我们可以根据不同的条件进行判断,并执行相应的操作。如果所有条件都不满足,可以使用 ELSE 子句指定默认的结果。

组合多个 WHEN 条件

有时候,我们需要根据多个条件的组合来执行不同的操作。在这种情况下,我们可以在 CASE 语句中使用逻辑运算符(如 AND 和 OR)来组合多个条件。下面是一个示例:

CASE

WHEN condition1 AND condition2 THEN result1

WHEN condition3 OR condition4 THEN result2

...

ELSE result

END

在这个示例中,我们使用了 AND 和 OR 运算符组合了多个条件。根据条件的结果,我们可以执行不同的操作。

案例代码

为了更好地理解在 CASE 中组合多个 WHEN 条件的用法,我们来看一个具体的案例。假设我们有一个学生成绩表,包含学生的姓名和成绩。我们希望根据学生成绩的不同范围,给出相应的评级。

首先,我们创建一个名为 "grades" 的表,包含两列:name 和 score。然后,我们插入一些学生的成绩数据:

CREATE TABLE grades (

name VARCHAR(50),

score INT

);

INSERT INTO grades (name, score)

VALUES ('John', 80),

('Emily', 90),

('Michael', 70),

('Jessica', 65),

('Daniel', 95);

接下来,我们使用 CASE 语句组合多个 WHEN 条件,根据不同的成绩范围给出评级。假设我们将成绩分为三个范围:优秀(90及以上)、良好(80至89)、及格(80以下)。我们可以使用以下代码实现:

SELECT name, score,

CASE

WHEN score >= 90 THEN '优秀'

WHEN score >= 80 THEN '良好'

ELSE '及格'

END AS grade

FROM grades;

运行以上代码,我们将得到每个学生的姓名、成绩以及相应的评级。

在 MySQL 中,使用 CASE 语句可以根据条件执行不同的操作。当需要在 CASE 语句中组合多个 WHEN 条件时,我们可以使用逻辑运算符(如 AND 和 OR)来实现。通过合理运用这些技巧,我们可以根据不同的条件满足更复杂的需求。

希望本文能够帮助你理解如何在 MySQL 中组合多个 WHEN 条件,并在实际应用中发挥作用。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号