在稍微高级一点的存储过程中,对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
sum(decode(nvl(t.area_code,0),'||region_code||',1,0)) ---------------这里的汇总规则为按照t表的area_code,取值,如果等于region_code则取为1,否则为0,这样就把t表按照area_code划分开来了。