mysql case when用法

导读 在MySQL中,`CASE WHEN` 语句是一种条件表达式,它用于基于一个或多个条件执行不同的操作或返回值。这在SQL查询中特别有用,尤其是当你需...

在MySQL中,`CASE WHEN` 语句是一种条件表达式,它用于基于一个或多个条件执行不同的操作或返回值。这在SQL查询中特别有用,尤其是当你需要根据不同条件对结果进行不同的处理时。下面是 `CASE WHEN` 的基本用法和示例。

### 基本语法:

```sql

CASE

WHEN condition1 THEN result1

WHEN condition2 THEN result2

...

ELSE result_else

END

```

### 示例:

假设有一个名为 `students` 的表,其中包含学生的分数和名字。你想要根据分数将学生分为不同的等级。可以使用以下查询:

```sql

SELECT name, score,

CASE

WHEN score >= 90 THEN '优秀'

WHEN score >= 75 THEN '良好'

WHEN score >= 60 THEN '及格'

ELSE '不及格'

END AS grade

FROM students;

```

在这个例子中,我们根据学生的分数将他们分为四个等级:优秀、良好、及格和不及格。如果分数满足某个条件,`CASE WHEN` 就会返回相应的结果。如果不满足任何条件,它会返回 `ELSE` 子句中的结果(在这个例子中是 '不及格')。如果没有 `ELSE` 子句并且没有条件被满足,`CASE` 表达式将返回 `NULL`。

### 使用 `CASE` 在 `ORDER BY` 子句中:

你还可以使用 `CASE WHEN` 在 `ORDER BY` 子句中,以便根据特定条件对结果进行排序。例如,假设你想根据上面示例中的等级对学生进行排序:

```sql

SELECT name, score, grade

FROM students

ORDER BY

CASE grade

WHEN '优秀' THEN 1

WHEN '良好' THEN 2

WHEN '及格' THEN 3

ELSE 4

END;

```

在这个例子中,我们首先根据等级对学生进行排序。优秀的学生会被排在前面,然后是良好、及格和不及格的学生。这是通过在 `ORDER BY` 子句中使用 `CASE WHEN` 来实现的。

总之,`CASE WHEN` 在MySQL中是一个强大的工具,允许你在查询中根据条件执行不同的操作或返回不同的值。

版权声明:本文由用户上传,如有侵权请联系删除!