decode函数相当于一条件语句,它将输入值与函数中的参数列表进行比较,根据输入值返回一个对应的值。
其具体的语法格式如下:
DECODE(input_value,value,result[,value,result…][,default_result]);
其中:
input_value 试图处理的数值。DECODE函数将该数值与一系列的序偶相比较,以决定最后的返回结果
value 是一组成序偶的数值。如果输入数值与之匹配成功,则相应的结果将被返回。对应一个空的返回值,可以使用关键字NULL于之对应
result 是一组成序偶的结果值
default_result 未能与任何一序偶匹配成功时,函数返回的默认值
什么情况下使用?这个不好说,很多地方可以用,但有点是肯定,他可以把内容转换成我们需要的值,比如有张人员信息表,性别一栏放的是字典内容,1男,2女,9未知,我们可以直接用decode,不关联数据字典
select xm,decode(xb , '1','男',2,'女','9','不男不女',null,'难道是人妖?','手术中') from ryxx;
类似于IF
DECODE(对象, 值1, 结果1, 值2, 结果2, ...... [默认结果])
其中[]中得是不一定要写的.
IF 对象 = 值1
返回 结果1
elsif 对象 = 值2
返回 结果2
else
返回 默认结果
end if