case表达式可以在sql中实现if-then-else型的逻辑,而不必使用pl/sql。case的工作方式与decode()类似,但应该使用case,因为它与ansi兼容。 注意点: 1、以case开头,以end结尾 2、分支中when后跟条件,then为显示结果 3、else为除此之外的默认情况,类似于高级
case表达式可以在sql中实现if-then-else型的逻辑,而不必使用pl/sql。case的工作方式与decode()类似,但应该使用case,因为它与ansi兼容。
注意点:
1、以case开头,以end结尾
2、分支中when后跟条件,then为显示结果
3、else为除此之外的默认情况,类似于高级语言程序中switch case的default,可以不加
4、end后跟别名
case有两种表达式:
1.简单case表达式,使用表达式确定返回值.
语法:
case search_expression
when expression1 then result1
when expression2 then result2
...
when expressionn then resultn
else default_result
end
例:
select product_id,product_type_id,
case product_type_id
when 1 then 'book'
when 2 then 'video'
when 3 then 'dvd'
when 4 then 'cd'
else 'magazine'
end
from products
结果:
product_id product_type_id caseprod
---------- --------------- --------
1 1 book
2 1 book
3 2 video
4 2 video
5 2 video
6 2 video
7 3 dvd
8 3 dvd
9 4 cd
10 4 cd
11 4 cd
12 magazine
12 rows selected.
2.搜索case表达式,使用条件确定返回值.
语法:
case
when condition1 then result1
when condistion2 then result2
...
when condistionn then resultn
else default_result
end
例:
select product_id,product_type_id,
case
when product_type_id=1 then 'book'
when product_type_id=2 then 'video'
when product_type_id=3 then 'dvd'
when product_type_id=4 then 'cd'
else 'magazine'
end
from products
结果与上相同.