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子句条件为 true,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