decode(条件,值1,结果1,值2,结果2,值3,结果3,... 值n,结果n,缺省值)
改函数的解释:
IF 条件=值1 THEN
RETURN(结果1)
ELSIF 条件=值2 THEN
RETURN(结果2)
......
ELSIF 条件=值n THEN
RETURN(结果n)
ELSE
RETURN(缺省值)
END IF
简单示例:
比赛胜负表t_result
要求查询获得结果
则可以是使用以下语句查询到正确结果
select
name 姓名,sum(decode(t.result,'胜',1,0)) 胜,sum(decode(t.result,'负',1,0)) 负
from
t_result t
group by name
order by 胜 desc,负 asc
对以上的sql语句简单的解释一下:
sum(decode(t.result,'胜',1,0))
sum(decode(t.result,'负',1,0)) 负