Simple CASE vs. Searched CASE
来源:互联网 发布:淘宝冰点价怎么设置 编辑:程序博客网 时间:2024/06/16 11:09
转载自:http://www.oratable.com/simple-case-searched-case/
The CASE construct in Oracle has two variants – the simple CASE and the searched CASE. We saw examples of both kinds in the topic The Difference Between DECODE and CASE.
Let’s have a closer look to compare them in structure and functionality.
Structural Differences
The simple CASE has the following structure:
case
n
when
1
then
Action1
when
2
then
Action2
else
ActionOther
end
case
;
The searched CASE has the following structure:
case
when
n = 1
then
Action1;
when
n = 2
then
Action2;
when
( n > 2
and
n < 6)
then
Action3through5;
else
ActionOther;
end
case
;
Functional Differences
The simple CASE performs a simple equality check of "n" against each of the "when" options.
The searched CASE evaluates the conditions independently under each of the "when" options. With this structure, far more complex conditions can be implemented with a searched CASE than a simple CASE.
A searched CASE can combine multiple tests using several columns, comparisons and AND/OR operators.
Note that in both simple and searched CASE constructs, the conditions are evaluated sequentially from top to bottom, and execution exits after the first match is found. So, suppose more than one condition is true, only the first action is considered.
Example using the searched case:
case
when
empno
in
(
'KING'
,
'CLARK'
)
and
sal > 5000
then
process_highpaid(empno);
when
empno
in
(
'CLARK'
,
'SMITH'
)
then
process_manager(empno);
else
process_general(empno);
end
case
;
In the above, though employee CLARK may match two conditions, only process_highpaid(empno) will be executed.
Historical Difference
Not that it matters but for the trivia buffs (and also if you’re working on an old version of Oracle) – the simple CASE expression was introduced in Oracle 9i. The searched CASE expression is the Oracle 8i variant.
Exercise for you:
In the examples under the topic The Difference Between DECODE and CASE, identify which use simple CASE and which use searched CASE.
For further reading:
Oracle documentation on CASE Expressions
- Simple CASE vs. Searched CASE
- case
- CASE
- case
- case
- user case VS. user story
- User story VS. use case
- Case vs Perform i Of
- A simple example for test case--triangle
- Run first simple case on Jmeter
- A simple case of unit testing
- 【UML001】Business Use-Case VS System Use-Case
- case用法
- SQL CASE
- Sql case
- select case
- Where Case
- test case
- 类所占内存空间总结
- 什么是ERP
- commons-fileupload实现文件上传、下载、在线打开
- Android中View绘制流程以及invalidate()等相关方法分析 .
- 结构体链表
- Simple CASE vs. Searched CASE
- PE文件讲解
- HDU 2845 Beans
- 度量值与管理距离
- [raspberry pi] 如何设置WIFI连接
- C++编程思想读书笔记(1) - 堆和栈
- 详解C++中的virtual
- SIP协议中的一些混淆概念
- Hibernate3.x教程(五) Hibernate性能优化小结