oracle中case whe嵌套
时间: 2024-09-21 22:02:48 浏览: 49
在Oracle数据库中,CASE WHEN语句是一种条件表达式,常用于PL/SQL、SQL查询或者其他编程环境中进行复杂的逻辑判断。当你需要基于一个或多个条件对数据进行分类或转换时,可以使用嵌套的CASE WHEN结构。
例如,如果你有一个员工表,你想根据他们的薪资等级给他们分配奖金,你可以这样写:
```sql
SELECT employee_id,
CASE
WHEN salary BETWEEN 0 AND 5000 THEN '新手'
WHEN salary BETWEEN 5001 AND 10000 THEN '初级'
WHEN salary BETWEEN 10001 AND 20000 THEN '中级'
ELSE '高级'
END AS job_title,
CASE
WHEN salary_level IN ('新手', '初级') THEN salary * 0.1
WHEN salary_level = '中级' THEN salary * 0.15
ELSE salary * 0.2
END AS bonus
FROM employees;
```
在这个例子中,外层CASE WHEN根据薪资范围决定员工的级别,内层CASE WHEN则根据级别的不同计算奖金比例。每个CASE WHEN都有一个WHEN部分和一个THEN部分,如果满足条件,就会执行对应的THEN后的值。
阅读全文