Oracle的case when用法
时间: 2024-10-31 08:04:14 浏览: 25
在Oracle中,`CASE WHEN`是一个关键字,用于创建复杂的条件判断和返回值。它的基本语法如下:
```sql
CASE
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2
[ ELSE default_result ]
END [ AS alias]
```
这里解释一下各个部分的含义:
1. **condition_1**: 当满足这个条件时,执行的结果是`result_1`。
2. **result_1**: 如果`condition_1`为真,则返回这个结果;否则,如果后续没有匹配的条件,则继续查找下一个条件。
3. **condition_2**: 同理,如果`condition_2`为真,则返回`result_2`。
4. **ELSE**块可选:如果没有前面的条件匹配,则执行这里的`default_result`。
5. **AS alias**可选:给`CASE`表达式的结果指定别名,方便后续引用。
`CASE WHEN`常用于数据转换、聚合函数的替代以及基于某个条件生成新的字段值。例如,计算学生分数等级:
```sql
SELECT student_id,
CASE
WHEN grade > 90 THEN 'A'
WHEN grade BETWEEN 80 AND 90 THEN 'B'
WHEN grade BETWEEN 70 AND 80 THEN 'C'
ELSE 'F'
END AS letter_grade
FROM students;
```
在这个例子中,`CASE`根据学生的分数分配字母等级。
阅读全文