【case(when及then及else及end用法)】在SQL查询中,`CASE WHEN THEN ELSE END` 是一个非常实用的条件判断语句,用于根据不同的条件返回不同的值。它类似于编程语言中的 `if-else` 逻辑结构,能够增强SQL语句的灵活性和功能。
一、基本语法结构
`CASE WHEN THEN ELSE END` 的基本语法如下:
```sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
```
也可以写成另一种形式:
```sql
CASE expression
WHEN value1 THEN result1
WHEN value2 THEN result2
...
ELSE default_result
END
```
二、使用场景
使用场景 | 示例说明 |
条件判断 | 根据字段值返回不同结果 |
数据转换 | 将数值转换为可读性更强的文本 |
分类统计 | 按照条件对数据进行分类汇总 |
多条件处理 | 同时满足多个条件时返回特定值 |
三、常见用法示例
示例 | SQL语句 | 说明 |
单条件判断 | `CASE WHEN score >= 60 THEN '合格' ELSE '不合格' END` | 判断成绩是否合格 |
多条件判断 | `CASE WHEN grade = 'A' THEN '优秀' WHEN grade = 'B' THEN '良好' ELSE '一般' END` | 按等级返回不同评价 |
值匹配判断 | `CASE status WHEN '1' THEN '启用' WHEN '0' THEN '禁用' END` | 根据状态码返回对应状态 |
数值区间判断 | `CASE WHEN age < 18 THEN '未成年' WHEN age BETWEEN 18 AND 60 THEN '成年人' ELSE '老年' END` | 按年龄分段显示信息 |
四、注意事项
注意事项 | 说明 |
顺序重要 | `WHEN` 条件是按顺序判断的,一旦满足就停止后续判断 |
必须有 `END` | `CASE` 语句必须以 `END` 结尾 |
可嵌套使用 | 可以在 `THEN` 或 `ELSE` 中再次使用 `CASE` 语句 |
类型一致 | 返回的结果类型应尽量保持一致,避免数据类型冲突 |
五、总结
`CASE WHEN THEN ELSE END` 是SQL中实现条件逻辑的重要工具,适用于多种数据处理场景。通过合理使用该语句,可以简化复杂的查询逻辑,提高数据处理的灵活性和可读性。掌握其用法,有助于编写更高效、清晰的SQL语句。