decode的几种用法
1.使用decode判断字符串是否一样
DECODE(字段名,if1,then1,if2,then2,if3,then3,…,else)
含义为
IF 字段名的值=值1 THEN
RETURN(value 1)
ELSIF 字段名的值=值2 THEN
RETURN(value 2)
…
ELSIF 字段名的值=值n THEN
RETURN(value 3)
ELSE
RETURN(default)
END IF
例如:
decode(THAW_RESULT,0,'解冻失败',1,'解冻成功',THAW_RESULT) as thawResult
结果:
(左边数据库,右边页面)
2.使用decode比较大小
select decode(sign(var1-var2),-1,var 1,var2) from dual
sign()函数根据某个值是0、正数还是负数,分别返回0、1、-1
简单来说就是: sign(var1-var2)返回的值 是否等于 -1, 结果为true时 为var 1,结果为false时 为var 2
例子测试:
select decode(sign(100-90),-1,100,90) from dual
输出结果
90
100-90=10>0 则会返回1,所以decode函数最终取值为90
反正
select decode(sign(100-90),1,100,90) from dual
输出结果
100
100-90=10>0返回1,判断结果为1,返回第一个变量100,最终输出结果为100