Conditional

CASE

PostgreSQLPostgreSQL

Ekspresi kondisional yang mengembalikan nilai berbeda berdasarkan kondisi. Ada dua bentuk: simple CASE (membandingkan expression) dan searched CASE (evaluasi kondisi boolean).

Tipe hasil: varies

Syntax

SQL
CASE expression
  WHEN value1 THEN result1
  WHEN value2 THEN result2
  ELSE default_result
END

CASE
  WHEN condition1 THEN result1
  WHEN condition2 THEN result2
  ELSE default_result
END

Parameter

WHENcondition/valuewajib

Kondisi atau nilai yang diuji

THENanywajib

Nilai yang dikembalikan jika kondisi terpenuhi

ELSEanyopsional

Nilai default jika tidak ada kondisi terpenuhi

Contoh Penggunaan

Simple CASE

SQL
1SELECT
2 name,
3 status,
4 CASE status
5 WHEN active THEN Aktif
6 WHEN inactive THEN Tidak Aktif
7 WHEN pending THEN Menunggu
8 ELSE Unknown
9 END AS status_label
10FROM users;

Mengubah kode status menjadi label yang mudah dibaca.

Hasil
namestatusstatus_label
JohnactiveAktif
JanependingMenunggu

Searched CASE

SQL
1SELECT
2 name,
3 score,
4 CASE
5 WHEN score >= 90 THEN A
6 WHEN score >= 80 THEN B
7 WHEN score >= 70 THEN C
8 WHEN score >= 60 THEN D
9 ELSE F
10 END AS grade
11FROM students;

Mengkonversi skor numerik menjadi grade.

Hasil
namescoregrade
Andi95A
Budi78C

CASE dalam Aggregate

SQL
1SELECT
2 COUNT(CASE WHEN status = active THEN 1 END) AS active_count,
3 COUNT(CASE WHEN status = inactive THEN 1 END) AS inactive_count
4FROM users;

Conditional counting dalam satu query.

Fungsi Equivalen di Database Lain

Fungsi Terkait