decode函数用法

 

Oracle Decode函数是一个功能强大的Oracle特有函数(似乎别的数据库都没有这样的函数)

函数原型

Decode(条件,值1,转换值1,值2,转换值2……,缺省值)   相当于if then 或者替代where条件

用法:

1,替代where 用于一些条件和判断的过滤

网上范例:

SELECT COUNT(DECODE(DEPT_NO,0020,’X’,NULL)) D0020_COUNT,

COUNT(DECODE(DEPT_NO,0030,’X’,NULL)) D0030_COUNT,

SUM(DECODE(DEPT_NO,0020,SAL,NULL)) D0020_SAL,

SUM(DECODE(DEPT_NO,0030,SAL,NULL)) D0030_SAL

FROM EMP WHERE ENAME LIKE ‘SMITH%’

sum或count时,根据条件做过滤

2,select  sum(a) from A 时,A无记录,sum值为null,想当sum为null时,转换为0.可以:

Decode( (select  sum(a) from A ) , null , 0 , (select  sum(a) from A ) )  相当与nvl

3,比较大小

select decode(sign(变量1-变量2),-1,变量1,变量2) from dual

 

============================================================================================================

 

一、sign函数用于比较大小,语法如下:sign( number )

 

        number 是要测试标志的数字.

If number < 0, then sign returns -1.
If number = 0, then sign returns 0.
If number > 0, then sign returns 1.

 

二、decode 具有和 IF-THEN-ELSE 一样的功能。decode 函数语法如下:

decode( expression , search , result [, search , result]... [, default] )

如:decode(sign(cj1p-cj2p),1,cj1p,cj2p),若cj1p>cj2p,则返回cj1p,否则返回cj2p

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值