56.Oracle数据库SQL开发之 高级查询——使用DECODE函数
欢迎转载,转载请标明出处: blog.csdn.net/notbaron/ar…
DECODE(value,search_value,result,default_value)对value与search_value进行比较。
DECODE允许在SQL中执行if-then-else类型的逻辑处理,而不需要使用PL/SQL。
DECODE是ORACLE以前所特有的一个函数,如果使用9i和更高版本的话,应该用CASE表达式来代替。
idle>select decode ( 1,1,2,3) from dual;
DECODE(1,1,2,3)
---------------
2
idle> select decode ( 1,2,1,3) from dual;
DECODE(1,2,1,3)
---------------
3
store@PDB1> selectprd_id,available,decode(available,'Y','Product is available','Product is notavailable') from more_products;
PRD_ID A DECODE(AVAILABLE,'Y','PR
---------- - ------------------------
1 Y Product is available
2 Y Product is available
3 N Product is not available
4 N Product is not available
5 Y Product is available
可以向DECODE传递多个搜索和结果参数,类似CASE
store@PDB1> selectproduct_id,product_type_id,decode(product_type_id,1,'Book',2,'Video',3,'DVD',4,'CD','Magazine') from products;
PRODUCT_IDPRODUCT_TYPE_ID DECODE(P
---------- --------------- --------
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.