DECODE函数的作用它可以将输入数值与函数中的参数列表相比较根据输入值返回一个对应值函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式当然如果未能与任何一个实参序偶匹配成功则函数也有默认的返回值
DECODE函数的作用它可以将输入数值与函数中的参数列表相比较根据输入值返回一个对应值函数的参数列表是由若干数值及其对应结果值组成的若干序偶形式当然如果未能与任何一个实参序偶匹配成功则函数也有默认的返回值
区别于SQL的其它函数DECODE函数还能识别和操作空值
语法如下
DECODE(control_valuevalueresult[valueresult…][default_result]);
control _value
试图处理的数值DECODE函数将该数值与后面的一系列的偶序相比较以决定返回值
value
是一组成序偶的数值如果输入数值与之匹配成功则相应的结果将被返回对应一个空的返回值可以使用关键字NULL于之对应
result
是一组成序偶的结果值
default_result 未能与任何一个值匹配时函数返回的默认值
示例如下
select decode( x ‘x is ’ ‘x is ’ ‘others’) from dual
当x等于时则返回‘x is ’
当x等于时则返回‘x is ’
否则返回others’
在需要比较个值的时候我们可以配合SIGN()函数一起使用
SELECT DECODE( SIGN( ) Is Positive Is Nagative Is Zero)
同样也可以用CASE实现
SELECT CASE SIGN( )
WHEN THEN Is Positive
WHEN THEN Is Nagative
ELSEIs Zero END
FROM DUAL
另外大家还可以在Order by中使用Decode
例表table_subject有subject_name列要求按照语数外的顺序进行排序这时就可以非常轻松的使用Decode完成要求了
select * from table_subject order by decode(subject_name 语文 数学 外语)