decode函数的用法

DECODE(value, if1, then1, if2,then2, if3,then3, . . . else )

SQL测试:

decode(1,2,‘双数’,‘单数’)-----测试结果为单数

应用 1、使用decode函数比较大小

Select decode(sign(var1-var2),-1,var1,var2) from dual   ---取较小值

Select decode(sign(var1-var2),1,var1,var2) from dual     ---取较大值

Sign()函数根据某个值是0、正数、负数,分别返回0、1、-1;

SQL测试:

1)Select decode(sign(88-77),-1,88,77) from dual   

88-77=11>0,是正数,即sign(88-77)返回的值是1,即转化成decode(1,-1,88,77),

而decode函数的语法为decode(value,if1,then1,else),1不等于if1的值-1,所以取else的值77

即取较小值 77

2)Select decode(sign(88-77),1,88,77) from dual   

88-77=11>0,是正数,即sign(88-77)返回的值是1,即转化成decode(1,1,88,77),

而decode函数的语法为decode(value,if1,then1,else),1等于if1的值1,所以取if1的值88

即取较大值 88

猜你喜欢

转载自blog.csdn.net/ncll_LBL/article/details/89450230