単純な 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
(省略可)- 有効なフィールドまたは式。ELSE
else_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