oracle case when 多个条件简写
时间: 2023-10-31 16:56:18 浏览: 117
在 Oracle 中,可以使用 CASE 表达式来完成多个条件的简写。具体语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE result
END
```
其中,`condition1`、`condition2`、...、`conditionN` 是多个条件,`result1`、`result2`、...、`resultN` 是对应条件的结果,`result` 是默认结果。如果其中的某个条件成立,则返回对应的结果;如果所有条件都不成立,则返回默认结果。
例如,以下代码展示了一个简单的 CASE 表达式,如果 `age` 大于等于 18,则返回字符串 `'成年人'`,否则返回字符串 `'未成年人'`:
```
SELECT name, age,
CASE WHEN age >= 18 THEN '成年人' ELSE '未成年人' END AS status
FROM users;
```
注意,在 Oracle 中,CASE 表达式是可以嵌套的,这样可以实现更加复杂的逻辑。
相关问题
oracle case when 多个条件简写,有什么函数可以简写
在 Oracle 中,可以使用 DECODE 函数来简写多个条件的 CASE WHEN 语句。DECODE 函数的语法如下:
```
DECODE(expression, search1, result1, search2, result2, ..., default)
```
其中,expression 表示要进行匹配的表达式,search1, search2, ... 表示要匹配的值,result1, result2, ... 表示匹配成功后返回的结果,default 表示如果没有匹配成功的值,则返回 default。
例如,以下 CASE WHEN 语句可以使用 DECODE 函数进行简写:
```
CASE
WHEN column = 'value1' THEN 'result1'
WHEN column = 'value2' THEN 'result2'
WHEN column = 'value3' THEN 'result3'
ELSE 'default'
END
```
可以简写为:
```
DECODE(column, 'value1', 'result1', 'value2', 'result2', 'value3', 'result3', 'default')
```
使用 DECODE 函数可以使代码更简洁易懂。
SQL中CASE语句如何简写
在SQL中,CASE语句通常用于根据特定条件返回不同的值。标准的CASE结构可能会看起来像这样:
```sql
SELECT
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
ELSE default_result
END as new_column_name
FROM table_name;
```
这里,`condition1`, `condition2`是判断条件,`result1`, `result2`是在条件满足时返回的结果,`default_result`是所有其他情况下的默认值。
然而,有一些数据库管理系统支持简写的CASE语法,例如Oracle的DECODE函数或MySQL的IFNULL函数。这些可以简化表达式:
- Oracle的DECODE:
```sql
SELECT DECODE(column_name, value1, result1, value2, result2, default_value) FROM table_name;
```
- MySQL的IFNULL:
```sql
SELECT IFNULL(column_name, default_result) FROM table_name;
```
在上述例子中,如果`column_name`等于`value1`,返回`result1`,否则依次检查直到找到匹配项或遇到`default_value`。
请注意,不同的数据库可能有不同的简写语法,所以最好查阅具体的文档。
阅读全文