oracle case when 嵌套的例子
时间: 2023-06-30 19:25:41 浏览: 168
下面是 Oracle 中 `CASE WHEN` 嵌套的一个例子:
假设有一个销售表 `sales`,其中包含 `product`、`region` 和 `amount` 三个字段,我们想要根据 `product` 和 `region` 计算出销售额 `revenue`。如果 `product` 为 "A",则将 `amount` 乘以 1.2;如果 `region` 为 "East",则将 `revenue` 加上 100。可以使用如下的 SQL 语句:
```
SELECT
product,
region,
amount,
CASE
WHEN product = 'A'
THEN amount * 1.2
ELSE amount
END AS revenue1,
CASE
WHEN region = 'East'
THEN CASE
WHEN product = 'A'
THEN amount * 1.2 + 100
ELSE amount + 100
END
ELSE revenue1
END AS revenue2
FROM
sales;
```
该 SQL 语句中嵌套了两个 `CASE WHEN` 表达式。首先,根据 `product` 计算出 `revenue1`,然后根据 `region` 计算出 `revenue2`。如果 `product` 不为 "A",则 `revenue1` 的值与 `amount` 相等;如果 `region` 不为 "East",则 `revenue2` 的值与 `revenue1` 相等。
阅读全文