Oracle中的DECODE函數用于將表達式與一系列條件進行比較,并返回第一個滿足條件的結果。如果沒有條件滿足,則返回ELSE子句中的默認值。
DECODE函數的語法如下:
DECODE(expr, search1, result1, search2, result2, …, default)
其中,expr是要比較的表達式,search1、search2等是要比較的條件,result1、result2等是條件滿足時返回的結果,default是當所有條件都不滿足時的默認值。
下面是一個簡單的示例,說明如何使用DECODE函數:
SELECT DECODE(salary, 1000, ‘低薪’, 2000, ‘中薪’, ‘高薪’) AS salary_level
FROM employees;
在這個示例中,我們比較了salary列的值,如果salary為1000,則返回’低薪’;如果salary為2000,則返回’中薪’;否則返回’高薪’。
注意:
DECODE函數是逐個比較條件的,如果找到一個滿足條件的結果,后面的條件將不再比較。
DECODE函數可以比較多個條件,但推薦使用CASE語句來替代DECODE函數,因為CASE語句更易讀且更靈活。