CASE (simple)
簡單的 CASE
會根據單一輸入運算式的值傳回結果,如果沒有任何比較值相符,則會傳回預設結果。
另請參閱:IF。
用法示範
將付款代碼換成直覺式名稱:
CASE Payment Type WHEN "CC" THEN "Credit Card" WHEN "DC" THEN "Debit Card" WHEN "GC" THEN "Gift Card" WHEN "CA" THEN "Cash" ELSE "Other" END
語法
CASE input_expression WHEN expression_to_match THEN result [WHEN expression_to_match THEN result] [...] [ELSE else_result] END
參數
input_expression
- 任何有效欄位或運算式。- [
expression_to_match
- 任何有效欄位或運算式。WHEN
子句會比較input_expression
和input_expression
,如果兩者相等則傳回 true,否則傳回 false。]{#when-conditions} result
- 任何有效欄位或運算式。每個WHEN
子句都必須有相符的THEN
子句,指定該條件為 true 時要傳回的結果。如有數個WHEN
子句,CASE
陳述式會傳回第一個 true 子句的結果。else_result
(選填) - 任何有效欄位或運算式。ELSE
else_result 子句會為CASE
陳述式指定預設結果。如果沒有任何WHEN
子句為 true,系統就會傳回這個子句。如果CASE
陳述式沒有ELSE
子句,且沒有任何WHEN
子句為 true,則CASE
陳述式會傳回NULL
。
簡易 CASE
的運作方式
簡單的 CASE
陳述式包含下列元素:
CASE
關鍵字,後接輸入運算式。WHEN
:用來與input_expression
比較的值。如果值等於input_expression
,則這個子句為 true。單一CASE
陳述式可以有多個WHEN
子句。THEN
:如果WHEN
子句的條件為 true,則傳回這個結果。CASE
陳述式中的每個WHEN
子句都必須有一個THEN
子句。ELSE
:選用。如果沒有任何WHEN
子句條件成立,CASE
會傳回ELSE
子句中的值,如果未指定ELSE
子句,則傳回NULL
。- 「
END
」關鍵字。
CASE
會評估每個連續 WHEN
子句,並傳回條件為 true 的第一個結果。不會評估任何剩餘的 WHEN
子句與 ELSE
結果。如果所有 WHEN
條件都是 false 或 NULL
,CASE
會傳回 ELSE
結果;如果沒有 ELSE
子句,則傳回 NULL
。
範例
為頂級客戶提供專屬連結:
CASE Premium Status WHEN "Platinum" THEN CONCAT(Site URL, "platinum_welcome.html") WHEN "Gold" THEN CONCAT(Site URL, "gold_welcome.html") WHEN "Silver" THEN CONCAT(Site URL, "silver_welcome.html") ELSE CONCAT(Site URL, "welcome.html") END