CASE (sederhana)

CASE sederhana menampilkan hasil berdasarkan nilai satu ekspresi input, atau hasil default jika tidak ada nilai perbandingan yang cocok.

Lihat juga: IF.

Contoh penggunaan

Mengganti kode pembayaran dengan nama yang mudah dikenali:

    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

Sintaks

    CASE input_expression
        WHEN expression_to_match THEN result
        [WHEN expression_to_match THEN result]
        [...]
        [ELSE else_result]
    END

Parameter

  • input_expression - Kolom atau ekspresi yang valid.
  • [expression_to_match - Kolom atau ekspresi yang valid. Klausa WHEN membandingkan input_expression dengan input_expression dan menampilkan benar jika keduanya sama, atau salah jika tidak sama.]{#when-conditions}
  • result - Kolom atau ekspresi yang valid. Setiap klausa WHEN harus memiliki klausa THEN yang cocok, yang menentukan hasil yang akan ditampilkan jika kondisi tersebut benar. Jika ada beberapa klausa WHEN, pernyataan CASE akan menampilkan hasil untuk klausa benar yang pertama.
  • else_result (opsional) - Kolom atau ekspresi yang valid. Klausa else_result ELSE menentukan hasil default untuk pernyataan CASE. Klausa ini ditampilkan jika tidak ada klausa WHEN yang benar. Jika pernyataan CASE tidak memiliki klausa ELSE, dan tidak ada klausa WHEN yang benar, pernyataan CASE akan menampilkan NULL.

Cara kerja CASE sederhana

Pernyataan CASE sederhana terdiri dari elemen berikut:

  • Kata kunci CASE, diikuti dengan ekspresi input.
  • WHEN : nilai yang akan dibandingkan dengan input_expression : jika nilai sama dengan input_expression, berarti klausa ini benar. Anda dapat memiliki beberapa klausa WHEN dalam satu pernyataan CASE.
  • THEN : hasil yang akan ditampilkan jika kondisi klausa WHEN benar. Anda harus memiliki satu klausa THEN untuk setiap klausa WHEN dalam pernyataan CASE.
  • ELSE : Opsional. Jika tidak ada kondisi klausa WHEN yang benar, CASE akan menampilkan nilai dalam klausa ELSE, atau NULL jika tidak ada klausa ELSE yang ditentukan.
  • Kata kunci END.

CASE mengevaluasi setiap klausa WHEN yang berurutan dan menampilkan hasil pertama yang kondisinya benar. Klausa WHEN yang tersisa dan hasil ELSE tidak akan dievaluasi. Jika semua kondisi WHEN bernilai salah atau NULL, CASE akan menampilkan hasil ELSE, atau jika tidak ada klausa ELSE, NULL akan ditampilkan.

Contoh

Memberikan link yang disesuaikan untuk pelanggan premium Anda:

    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