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