CASE (simple)
単純 CASE 式では、1 つの入力式の値に基づいて結果が返されます。いずれの比較値も一致しなかった場合は、デフォルトの結果が返されます。
関連情報: 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を比較し、2 つが等しい場合は true、等しくない場合は false を返します。]{#when-conditions} result- 有効なフィールドまたは式。各WHEN句には、対応するTHEN句が必要です。THEN 句では、条件が true である場合に返す結果を指定します。WHEN句が複数ある場合、CASE文では最初に true になった句の結果が返されます。else_result(省略可)- 有効なフィールドまたは式。ELSEelse_result 句では、CASE文のデフォルトの結果を指定します。WHEN句の条件がどれも満たされなかった場合、この句が返されます。CASE文にELSE句が含まれておらず、WHEN句のどの条件も満たされなかった場合、CASE文ではNULLが返されます。
単純 CASE 式の仕組み
単純な CASE ステートメントは、次の要素で構成されます。
CASEキーワードと、その後に続く 1 つの入力式。WHEN:input_expressionと比較する値。この値がinput_expressionと等しい場合、この句は true になります。1 つのCASEステートメントに複数のWHEN句を含めることができます。THEN:WHEN句の条件が true の場合に返される結果。CASE文内のWHEN句ごとに 1 つの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