DECODE函数相当于一条件语句(IF)它将输入数值与函数中的参数列表相比较根据输入值返回一个对应值函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式当然如果未能与任何一个实参序偶匹配成功则函数也有默认的返回值区别于SQL的其它函数DECODE函数还能识别和操作空值
其具体的语法格式如下
DECODE(input_valuevalueresult[valueresult…][default_result]);
其中
input_value 试图处理的数值DECODE函数将该数值与一系列的序偶相比较以决定最后的返回结果
value 是一组成序偶的数值如果输入数值与之匹配成功则相应的结果将被返回对应一个空的返回值可以使用关键字NULL于之对应
result 是一组成序偶的结果值
default_result 未能与任何一序偶匹配成功时函数返回的默认值
下面的例子说明了如何读取用户CHECKUP表SEAPARK中的BLOOD_TEST_FLAG列下的项目作为DECODE函数的实参支持值
SELECT checkup_type
DECODE(blood_test_flagYYesNNoNULLNoneInvalid)
FROM checkup;
例
select f_orgcount(f_org) as aa
sum(decode(F_FETTLE)) as 未处理
sum(decode(F_FETTLE)) as 处理中
sum(decode(F_FETTLE)) as 已查结
sum(decode(F_FETTLE)) as 已查实
from t_supervi
where F_SIGN=
group by f_org
order by aa;