mysql怎么写case
时间 : 2023-08-04 16:47:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性

在MySQL中,CASE语句可以根据不同的条件执行不同的操作。它有两种形式:简单CASE表达式和搜索CASE表达式。

1. 简单CASE表达式

简单CASE表达式用于在一系列相等比较中选择出一个结果。它的语法如下:

```sql

CASE case_expression

WHEN value_1 THEN result_1

WHEN value_2 THEN result_2

...

ELSE result_n

END

其中,`case_expression`是要比较的值,`value_1`, `value_2`, ... 是待比较的每个值,`result_1`, `result_2`, ...是每个值对应的结果,`ELSE`后面的`result_n`是当没有匹配项时的默认结果。

下面是一个简单的例子,假设有一个名为`students`的表,包含学生的信息,其中有一个`score`字段表示学生的分数等级,我们可以根据不同的分数等级输出对应的评价。

```sql

SELECT

CASE score

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;

2. 搜索CASE表达式

搜索CASE表达式用于在一系列条件中选择出一个满足条件的结果。它的语法如下:

```sql

CASE

WHEN condition_1 THEN result_1

WHEN condition_2 THEN result_2

...

ELSE result_n

END

其中,`condition_1`, `condition_2`, ...是待判断的条件,`result_1`, `result_2`, ...是每个条件满足时的结果,`ELSE`后面的`result_n`是当没有条件满足时的默认结果。

下面是一个搜索CASE的例子,假设有一个名为`products`的表,包含产品的信息,其中有一个`price`字段表示产品的价格,我们可以根据价格的不同范围输出对应的价格等级。

```sql

SELECT

CASE

WHEN price < 10 THEN 'Low'

WHEN price >= 10 AND price < 50 THEN 'Medium'

WHEN price >= 50 THEN 'High'

ELSE 'Unknown'

END AS price_level

FROM

products;

总之,CASE语句提供了一种在查询中根据不同条件进行分支判断的方式,可以根据具体需求选择简单CASE表达式或搜索CASE表达式。通过合理利用CASE语句,可以实现更灵活和复杂的查询。