oracle case when 多个条件简写
时间: 2023-10-31 07:56:18 浏览: 111
在 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 函数可以使代码更简洁易懂。
oracle三目运算符
Oracle中的三目运算符是一种条件表达式,常用于简化if-else语句的编写。其语法为:
```sql
condition ? value_if_true : value_if_false
```
其中,condition是一个布尔表达式,如果为真,返回value_if_true,否则返回value_if_false。例如:
```sql
SELECT CASE WHEN salary > 5000 THEN '高薪' ELSE '低薪' END AS salary_type FROM employees;
```
可以简写为:
```sql
SELECT salary > 5000 ? '高薪' : '低薪' AS salary_type FROM employees;
```
需要注意的是,Oracle中的三目运算符并不是标准的SQL语法,在其他数据库中可能不被支持。
阅读全文