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