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(選填) - 任何有效欄位或運算式。ELSEelse_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