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
子句均為假,系統就會傳回這個子句。如果CASE
陳述式沒有ELSE
子句,且所有WHEN
子句均為假,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