Oracle 中 case 的使用方法
时间: 2023-05-23 21:05:28 浏览: 173
A:在 Oracle 中,case 语句是一种用于实现条件语句的方法。它可以使用多个条件语句,在每个条件下执行不同的代码块。
案例:
假设你要在一个表中查询成绩大于等于90分的学生,但是如果他们的姓名是 Tom 的话,你要将成绩减去10分。
你可以使用以下 SQL 查询语句:
SELECT name,
CASE WHEN name = 'Tom' THEN score - 10 ELSE score END AS score
FROM student
WHERE score >= 90;
这条 SQL 语句会返回一个结果集,其中包含学生姓名和根据条件处理后的成绩。如果学生姓名是 Tom,则将其成绩减去10分,否则保持原样。如果学生成绩大于等于90分,且姓名不是 Tom,则该记录将被返回。
相关问题
oracle中case使用
在Oracle中,CASE表达式是一种条件分支语句,用于根据不同的条件执行不同的操作。CASE表达式有两种形式:简单CASE和搜索CASE。
简单CASE语句的语法如下:
```
CASE expression
WHEN comparison_expression THEN return_value
...
WHEN comparison_expression THEN return_value
ELSE return_value
END
```
在简单CASE语句中,expression是要比较的表达式,comparison_expression是每个WHEN子句后面的表达式,return_value是满足条件时返回的值。简单CASE只能进行完全匹配,相当于使用等于操作符(=),并且不能匹配null值。简单CASE语句可以进行运算、取别名和嵌套。
搜索CASE语句的语法如下:
```
CASE
WHEN condition THEN return_value
...
WHEN condition THEN return_value
ELSE return_value
END
```
在搜索CASE语句中,condition是每个WHEN子句后面的条件,可以使用比较操作符(like、!=、between ..and、<、=、is null、is not null等)。搜索CASE语句可以作为比较条件,因此可以替代简单CASE语句,并且更加灵活。
综上所述,Oracle中的CASE语句可以根据不同的条件执行不同的操作,可以使用简单CASE语句进行完全匹配,也可以使用搜索CASE语句进行更广泛的条件匹配。
#### 引用[.reference_title]
- *1* [Oracle中Case When的用法](https://blog.csdn.net/xiaochenXIHUA/article/details/121215294)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [Oracle中case用法总结](https://blog.csdn.net/qq_44953868/article/details/109075897)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
oracle中case when如何使用
Oracle中的CASE WHEN是一种条件表达式,用于根据满足或不满足特定条件的值来执行不同的操作。它可以用于SELECT语句的字段显示、WHERE子句的条件筛选和ORDER BY子句的排序。
在SELECT语句中,CASE WHEN可以用于根据特定条件生成不同的结果值。例如,以下是一个使用CASE WHEN的示例:
SELECT ID,
CASE WHEN SEX=0 AND AGE<=18 THEN NAME||'(女)'||AGE||'岁'
ELSE NAME||AGE||'岁'||'(不满足小于等于18岁的女生条件)'
END DETAIL
FROM "PeopleInfo";
此语句将根据AGE和SEX字段的值生成不同的结果,并将其作为DETAIL字段的值返回。
在GROUP BY子句中,CASE WHEN可以用作分组的条件判断。例如,以下是一个使用CASE WHEN作为分组条件的示例:
SELECT CASE WHEN AGE=18 THEN '18'
WHEN AGE=19 THEN '19'
END AGE,
COUNT(*)
FROM "PeopleInfo"
GROUP BY CASE WHEN AGE=18 THEN '18'
WHEN AGE=19 THEN '19'
END;
此语句将根据AGE字段的值进行条件判断,并将结果作为AGE字段的值进行分组。