case when 多条件
时间: 2023-07-06 20:32:51 浏览: 51
在 SQL 中,可以使用 CASE WHEN 语句实现多条件判断,语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE default_result
END
```
其中,`condition1`、`condition2`、...、`conditionN` 表示多个条件,`result1`、`result2`、...、`resultN` 表示对应条件为真时的结果,`default_result` 表示所有条件都不满足时的默认结果。
例如,以下 SQL 语句将根据分数段返回不同的等级:
```
SELECT score,
CASE
WHEN score >= 90 THEN 'A'
WHEN score >= 80 THEN 'B'
WHEN score >= 70 THEN 'C'
WHEN score >= 60 THEN 'D'
ELSE 'E'
END AS grade
FROM student;
```
在以上示例中,根据学生的分数段判断其等级,并将结果显示在 `grade` 列中。如果分数大于等于 90,则等级为 A,如果分数大于等于 80 且小于 90,则等级为 B,以此类推,如果分数小于 60,则等级为 E。
相关问题
case when多条件
在 SQL 中,可以使用 CASE WHEN 语句来实现多条件判断。其基本语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
```
其中,`condition1`、`condition2` 等表示条件,可以是任何表达式或逻辑运算符;`result1`、`result2` 等表示对应的结果,可以是任何值或表达式;`default_result` 表示如果没有条件满足时返回的默认结果,可以省略。
例如,下面的 SQL 语句使用 CASE WHEN 实现了按分数段统计学生人数的功能:
```
SELECT
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,
COUNT(*) AS count
FROM students
GROUP BY grade;
```
该语句将学生按照分数段分为 A、B、C、D、F 五个等级,然后统计每个等级的学生人数。注意,这里使用了 AS 子句给结果列取了别名 `grade` 和 `count`。
case when 多条件判断
以下是使用CASE WHEN进行多条件判断的示例:
1. 简单CASE函数格式:
```sql
SELECT orderId,
CASE state
WHEN '1' THEN '启动'
WHEN '2' THEN '关闭'
WHEN '3' THEN '待解锁'
WHEN '4' THEN '待解锁'
ELSE '未知状态'
END AS stateName
FROM t_table;
```
2. CASE搜索函数格式:
```sql
SELECT orderId,
CASE
WHEN state = '1' THEN '启动'
WHEN state = '2' THEN '关闭'
WHEN state IN ('3', '4') THEN '待解锁'
ELSE '未知状态'
END AS stateName
FROM t_table;
```
这两种格式都可以实现多条件判断,根据不同的条件值返回相应的显示值。简单CASE函数适用于只有一个条件参数的情况,而CASE搜索函数适用于有多个条件参数的情况。
相关推荐
![](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)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)