Oracle中decode函数的使用

本文介绍数据库中DECODE函数的功能与应用实例,并结合SIGN函数实现条件判断,用于数值的比较与处理,如选取两数值中的较小者。

含义解释:

  • DECODE(条件,值1,结果值1,值2,结果值2,...值n,结果值n,缺省值)

    该函数的含义如下:
    IF 条件=值1 THEN
        RETURN(结果值1)
    ELSIF 条件=值2 THEN
        RETURN(结果值2)
        ......
    ELSIF 条件=值n THEN
        RETURN(结果值n)

    ELSE
        RETURN(缺省值)
    END IF

使用方法:

  • 1、
比较大小
select decode(sign(变量1-变量2),-1,变量1,变量2) from dual; --取较小值
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1

例如:
变量1=10,变量2=20
则sign(变量1-变量2)返回-1,decode解码结果为“变量1”,达到了取较小值的目的。

举一个例子说明:

        不使用decode函数,

          select  num from students;

               

NUM
60
70
80
90

      

         select decode(sign(num-80),1,num+2,-1,num+5,num) as new_num from students;

 

NEW_NUM
62
73
80
95

      sign函数: 当括号中的表达式返回值大于0时,函数值返回1,表达式返回值小于0时,函数值返回-1,否则返回0.

 

 

       意思是,成绩小于80的,加上2,成绩大于80的,加上5,否则不加。

 

   

       

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值