CASE(単純)

単純な 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_expressioninput_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 にならなかった場合、CASEELSE 句の値を返します。ELSE 句が指定されていない場合は、NULL を返します。
  • END キーワード。

CASE は、後に続く各 WHEN 句を評価し、条件が true になる最初の結果を返します。残りの WHEN 句と ELSE 結果は評価されません。すべての WHEN 条件が false または NULL である場合、CASEELSE 結果を返します。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