@CASE
使用 @CASE 函數,根據一系列的值測試來選取值。您可以使用 @CASE 進行測試的案例數目沒有限制。如果案例數目很大,請先列出最常遇到的條件以獲得最佳效能。
對於此函數,Oracle GoldenGate 支援使用遁離序列來代表 Unicode 字串資料欄中的字元,或 Microsoft Windows、UNIX 以及 Linux 作業系統的原生字元編碼中的字元。如果提供任何引數作為 Unicode,則目標資料欄必須是 SQL Unicode 資料類型。
此函數不支援 NCHAR 或 NVARCHAR 資料類型。
語法
@CASE (<value>, <test_value1>, <test_result1>
[, <test_value2>, <test_result2>] [, ...]
[, <default_result>]
<value>
要測試的值,例如資料欄名稱。將文字括在單引號內。
<test_value>
<value> 的有效結果。將文字括在單引號內。
<test_result>
依據 <test_value> 值傳回的值。將文字括在單引號內。
<default_result>
如果 <value> 未產生任何 <test_value> 值,則會傳回預設值。將文字括在單引號內。
範例
範例 1
如果 PRODUCT_CODE 是 CAR,則會傳回 A car,如果 PRODUCT_CODE 是 TRUCK,則會傳回 A truck。如果 PRODUCT_CODE 不符合前兩個案例,則會傳回 FIELD_MISSING 指示,因為未指定預設值。
@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck')
範例 2
下列範例與上一個範例類似,只是提供預設值。如果 PRODUCT_CODE 不是 CAR 或 TRUCK,則函數會傳回 A vehicle。
@CASE (PRODUCT_CODE, 'CAR', 'A car', 'TRUCK', 'A truck', 'A vehicle')