含义解释:
-
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,否则不加。
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
![]()
本文介绍数据库中DECODE函数的功能与应用实例,并结合SIGN函数实现条件判断,用于数值的比较与处理,如选取两数值中的较小者。

被折叠的 条评论
为什么被折叠?



