SQL高级查询--decode()函数

decode(value,search_value,result,default_value)对value与search_value进行比较。如果这两个值相等,decode()返回result,否则返回default_value,decode允许

在SQL中执行if-then-else类型的逻辑处理,而不需要使用pl/sql。decode()每个参数都可以是列、字面值、函数和子查询

decode()为oracle所特有的一个函数

 

例1:

select decode(1,1,2,3) from dual;

decode(1,1,2,3)

-----------------------

                          2

例2:

select decode(1,2,1,3) from dual;

decode(1,2,1,3)

----------------------

                        3

 

例3:

对more_products表中的available列进行比较。如果available等于Y,返回字符串product is available,否则返回字符串product is not available

select  prd_id,available,decode(available,'Y','product is  available','product is not available') 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

 

例4:

product_type_id等于1,则返回book

product_type_id等于2,则返回video

product_type_id等于3,则返回dvd

product_type_id等于4,则返回cd

product_type_id等于其他任何值,则返回magazine

 

select product_id,product_type_id,decode(product_type_id,

 1,'book',

 2,'video',

 3,'dvd',

 4,'cd',

 'magazine')

from products;

 

product_id  product_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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值