oracle中case when的用法
时间: 2023-08-27 19:05:29 浏览: 126
在Oracle中,CASE WHEN语句用于根据条件执行不同的操作。它的基本语法如下:
`
CASE
WHEN condition1 THEN result
WHEN condition2 THEN result2
...
ELSE result
END
```
其中,condition1、condition2等是条件表达式,result1、result2等是与条件对应的结果。
以下是一个示例,展示了如何在CASE WHEN语句中使用:
```
SELECT column_name,
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result
END AS new_column_name
FROM table_name;
```
你可以根据具体的需求添加多个WHEN条件和对应的结果。如果所有条件都不满足,可以使用ELSE子句指定一个默认的结果。
希望这能帮到你!如果你还有其他问题,请随时问我。
相关问题
oracle的case when 用法
Oracle的CASE WHEN语法可以用于在查询中根据条件返回不同的结果。它有两种形式,简单CASE函数和搜索CASE函数。简单CASE函数用于对单个表达式进行比较,而搜索CASE函数用于对多个表达式进行比较。在使用CASE WHEN语法时,需要注意以下几点:
1. 以CASE开头,以END结尾。
2. 分支中WHEN后跟条件,THEN为显示结果。
3. ELSE为除此之外的默认情况,可以不加。
4. END后跟别名。
下面是一个简单CASE函数的例子:
```
SELECT name,
CASE gender
WHEN 'M' THEN 'Male'
WHEN 'F' THEN 'Female'
ELSE 'Unknown'
END AS gender
FROM employees;
```
这个查询将根据gender列的值返回不同的结果,并将结果存储在名为gender的列中。如果gender是'M',则返回'Male',如果是'F',则返回'Female',否则返回'Unknown'。
另一个例子是搜索CASE函数:
```
SELECT name,
CASE
WHEN salary < 5000 THEN 'Low'
WHEN salary >= 5000 AND salary < 10000 THEN 'Medium'
ELSE 'High'
END AS salary_range
FROM employees;
```
这个查询将根据salary列的值返回不同的结果,并将结果存储在名为salary_range的列中。如果salary小于5000,则返回'Low',如果salary大于等于5000且小于10000,则返回'Medium',否则返回'High'。
Oracle的case when用法
在Oracle中,`CASE WHEN`是一个关键字,用于创建复杂的条件判断和返回值。它的基本语法如下:
```sql
CASE
WHEN condition_1 THEN result_1
WHEN condition_2 THEN result_2
[ ELSE default_result ]
END [ AS alias]
```
这里解释一下各个部分的含义:
1. **condition_1**: 当满足这个条件时,执行的结果是`result_1`。
2. **result_1**: 如果`condition_1`为真,则返回这个结果;否则,如果后续没有匹配的条件,则继续查找下一个条件。
3. **condition_2**: 同理,如果`condition_2`为真,则返回`result_2`。
4. **ELSE**块可选:如果没有前面的条件匹配,则执行这里的`default_result`。
5. **AS alias**可选:给`CASE`表达式的结果指定别名,方便后续引用。
`CASE WHEN`常用于数据转换、聚合函数的替代以及基于某个条件生成新的字段值。例如,计算学生分数等级:
```sql
SELECT student_id,
CASE
WHEN grade > 90 THEN 'A'
WHEN grade BETWEEN 80 AND 90 THEN 'B'
WHEN grade BETWEEN 70 AND 80 THEN 'C'
ELSE 'F'
END AS letter_grade
FROM students;
```
在这个例子中,`CASE`根据学生的分数分配字母等级。
阅读全文