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
ELSE Is Zero END
FROM DUAL
另外大家還可以在Order by中使用Decode
例表table_subject有subject_name列要求按照語數外的順序進行排序這時就可以非常輕松的使用Decode完成要求了
select * from table_subject order by decode(subject_name 語文 數學 外語)
From:http://tw.wingwit.com/Article/program/Oracle/201311/19054.html