oracle case when 语法
时间: 2024-12-27 07:23:49 浏览: 2
### Oracle 中 CASE WHEN 语句的语法
在 Oracle 数据库中,`CASE WHEN` 是一种条件表达式,用于根据一系列条件来选择或计算值。这种结构非常灵活,在 `SELECT`, `UPDATE`, 和 `DELETE` 语句以及 PL/SQL 块中有广泛应用。
#### 基本语法
以下是 `CASE WHEN` 表达式的标准形式:
```sql
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE resultN
END
```
其中:
- `conditionX`: 要评估的布尔条件。
- `resultX`: 当对应的条件为真 (`TRUE`) 时返回的结果。
- `ELSE` 子句是可选的;如果没有任何 `WHEN` 条件被满足,则会触发 `ELSE` 部分并返回指定的结果。如果没有提供 `ELSE` 并且所有条件均不成立,那么整个表达式将返回 `NULL`[^3]。
#### 使用示例
下面展示了一个简单的例子,说明如何在 `SELECT` 查询里运用 `CASE WHEN` 结构来进行数据处理:
假设有一个名为 `employees` 的表,包含员工的信息字段如 `salary`(工资)。现在想要创建一个新的列显示每位员工所属的薪资等级:
```sql
SELECT employee_id,
first_name,
last_name,
salary,
CASE
WHEN salary < 5000 THEN 'Low'
WHEN salary BETWEEN 5000 AND 10000 THEN 'Medium'
WHEN salary > 10000 THEN 'High'
ELSE 'Unknown'
END AS "Salary Level"
FROM employees;
```
这段 SQL 将依据每条记录中的 `salary` 字段决定其属于哪个级别,并将其作为新列 `"Salary Level"` 输出到结果集中。
阅读全文