Oracle case用法,我们大家都知道Oracle CASE表达式能在SQL里,可以实现if-then-else型的相关逻辑,不一定非得使用PL/SQL。其实CASE的相关工作方式和DECODE()类似,但应该使用CASE,因为它与ANSI兼容。

创新互联是一家网站建设、成都网站设计,提供网页设计,网站设计,网站制作,建网站,定制网站,网站开发公司,成立于2013年是互联行业建设者,服务者。以提升客户品牌价值为核心业务,全程参与项目的网站策划设计制作,前端开发,后台程序制作以及后期项目运营并提出专业建议和思路。
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 Oracle CASEPROD
 - ---------- --------------- --------
 - 1 Book
 - 1 Book
 - 2 Video
 - 2 Video
 - 2 Video
 - 2 Video
 - 3 DVD
 - 3 DVD
 - 4 CD
 - 4 CD
 - 4 CD
 - Magazine
 - rows selected.
 
2. 搜索Oracle 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
 
结果与上相同.