CASE WHEN怎么使用
时间: 2023-08-31 19:19:48 浏览: 33
### 回答1:
CASE WHEN是一种条件语句,用于根据满足某些条件来返回不同的值。使用方法如下:
```
CASE
WHEN condition THEN result
WHEN condition THEN result
ELSE result
END
```
其中,`condition`是一个布尔表达式,当它为真时会返回对应的`result`。如果所有的条件都不满足,就会返回`ELSE`后面的`result`。
举个例子,假设有一张表格,包含一列叫做`grade`,记录学生的成绩。我们想要根据学生的成绩返回不同的文字评价。可以使用如下的CASE WHEN语句:
```
SELECT
CASE
WHEN grade >= 90 THEN '优秀'
WHEN grade >= 80 THEN '良好'
WHEN grade >= 70 THEN '中等'
ELSE '不及格'
END AS evaluation
FROM students;
```
这个语句会根据每个学生的成绩,返回对应的文字评价。
注意,CASE WHEN语句必须以`END`作为结尾。
### 回答2:
CASE WHEN 是一种常见的 SQL 查询语句,用于根据条件对结果进行分组或分类。它的语法是:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default result
END
首先,在 CASE 后面的 WHEN 关键字后,接着是一个条件表达式(condition1,condition2等)。每个条件表达式会返回一个布尔值,表示是否满足条件。
如果某个条件满足,则会执行对应的结果表达式(result1,result2等)。结果表达式可以是一个具体的值、一个计算表达式,或者是一个查询语句。
如果没有任何条件满足,那么会执行 ELSE 后的默认结果(default result)。
下面是一个示例:
SELECT
CASE
WHEN score >= 90 THEN '优秀'
WHEN score >= 80 THEN '良好'
WHEN score >= 70 THEN '及格'
ELSE '不及格'
END
FROM
students;
在上述示例中,根据学生的分数(score),使用 CASE WHEN 对学生进行等级划分。如果分数大于等于 90,则返回 '优秀';如果分数大于等于 80,则返回 '良好';如果分数大于等于 70,则返回 '及格';否则返回 '不及格'。
通过使用 CASE WHEN,我们可以根据不同的条件灵活地对查询结果进行分类和分组,为数据分析和报表生成提供了便利。
### 回答3:
CASE WHEN是SQL语言中的条件表达式,用于根据条件返回不同的结果。它的语法格式如下:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
其中,condition1、condition2等是条件的判断语句,result1、result2等是满足条件时返回的结果。
CASE WHEN的使用步骤如下:
1. 将要判断的条件写在WHEN后面,可以是对数据列的比较、运算,也可以是多个条件的逻辑组合。
2. 当满足条件时,返回对应的结果,结果可以是具体的值、表达式运算的结果,甚至是子查询的结果。
3. 如果没有任何条件满足时,可以使用ELSE关键字指定一个默认的结果。
4. 在END之前,可以添加多个WHEN的条件判断分支。
下面以一个例子说明CASE WHEN的使用:
假设有一个商品表,有一个字段是价格,我们需要根据不同的价格范围返回不同的类别:
SELECT
name,
CASE
WHEN price < 10 THEN '廉价品'
WHEN price >= 10 AND price < 50 THEN '中档品'
WHEN price >= 50 THEN '高档品'
ELSE '未知'
END AS category
FROM products;
以上SQL语句将根据商品的价格范围返回对应的类别。例如,当价格为5时,类别为“廉价品”;当价格为40时,类别为“中档品”。如果价格不属于任何范围,则类别返回为“未知”。
通过使用CASE WHEN,我们能够根据条件灵活地返回不同的结果,使得查询结果更加符合我们的需求。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)