decode是非常强大的函数,使用的情况非常多。比如判断除数是否为0
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
比如在计算比率的情况下,当除数为0时,设定返回值为0
select decede(num,0,0,validnum/num) rate from dual
这里,比率的计算,一般和round,to_char,trim一起使用
比如
select trim(to_char(round(decode(num,0,0,validnum/num),2),'9999990.99')) rate from dual
计算比率,然后返回保留两位小数的结果