oracle 中的 decode 函數可基于條件從多個值中選擇一個值,語法為:decode(expression, value1, result1, value2, result2, …, default_result)。它評估表達式與一系列值,匹配時返回對應結果,不匹配時返回默認結果。decode 支持嵌套,value 和 result 參數的數量必須成對出現,default_result 參數可選。
Oracle 中 DECODE 的用法
DECODE 函數在 Oracle 中是一種有用的工具,它允許您基于指定的條件從多個值中選擇一個值。其語法如下:
<code>DECODE(expression, value1, result1, value2, result2, ..., default_result)</code>
登錄后復制
用法詳解:
expression:要評估的表達式,它可以是任何有效的 Oracle 表達式。
value1, value2, …:指定的一組值,這些值可以是常量、變量或表達式。
result1, result2, …:與每個值關聯的結果。
default_result:當 expression 與給定的任何值都不匹配時返回的結果。
工作原理:
DECODE 函數逐個比較 expression 與給定的值。如果找到了匹配項,則返回與該值關聯的結果。如果沒有找到匹配項,則返回 default_result。
示例:
<code>SELECT DECODE(customer_type, 'standard', 10%, 'premium', 20%, 'vip', 30%, 0) FROM sales_data;</code>
登錄后復制
此查詢根據 customer_type 列的值計算客戶折扣。standard 客戶獲得 10% 折扣,premium 客戶獲得 20% 折扣,vip 客戶獲得 30% 折扣。如果 customer_type 列的值不在給定的范圍內,則不會應用折扣。
注意:
DECODE 函數支持嵌套,以處理復雜條件。
value 和 result 參數的數量可以變化,但必須成對出現。
default_result 參數是可選的,如果省略,則當沒有匹配的條件時返回 NULL。






