在Oracle数据库中,`CASE WHEN`语句是一个条件表达式,用于在SQL查询中进行条件判断并返回相应的值。它可以在SELECT查询、UPDATE语句、DELETE语句等中使用。
基本语法如下:
```sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END
```
这里是一个简单的例子来说明如何使用`CASE WHEN`:
假设我们有一个名为`employees`的表,其中包含员工的姓名和工资。我们想要查询每个员工的工资等级,可以使用以下查询:
```sql
SELECT
name,
salary,
CASE
WHEN salary <= 5000 THEN 'Low'
WHEN salary BETWEEN 5001 AND 10000 THEN 'Medium'
WHEN salary > 10000 THEN 'High'
ELSE 'Unknown'
END AS salary_grade
FROM employees;
```
在这个例子中,我们根据员工的工资值来分配工资等级。如果工资小于或等于5000,工资等级为'Low';如果工资在5001到10000之间,工资等级为'Medium';如果工资大于10000,工资等级为'High'。对于不符合上述任何条件的员工,工资等级为'Unknown'。`AS salary_grade`是一个别名,用于在结果集中表示新的列名。
注意:`CASE WHEN`语句是顺序敏感的,第一个满足的条件会返回相应的结果,之后的条件将不再被评估。如果没有任何条件被满足,那么会返回`ELSE`部分的结果(如果存在的话)。如果没有`ELSE`部分且没有条件被满足,那么整个`CASE WHEN`表达式将返回NULL。