Oracle中Decode()函数使用技巧
含义解释:
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
2.计算并统计分月销售业绩(有时可以用来实现行列转化)
参考语句:
select sum(decode(substrb(month,5,2),'01',sell,0)),sum(decode(substrb(month,5,2),'02',sell,0)),sum(decode(substrb(month,5,2),'03',sell,0)) from sale;
含义解释:
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
2.计算并统计分月销售业绩(有时可以用来实现行列转化)
参考语句:
select sum(decode(substrb(month,5,2),'01',sell,0)),sum(decode(substrb(month,5,2),'02',sell,0)),sum(decode(substrb(month,5,2),'03',sell,0)) from sale;