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