Conditional

CASE

DuckDBDuckDB

Ekspresi kondisional yang mengevaluasi kondisi secara berurutan dan mengembalikan hasil yang sesuai. Fundamental untuk logika kondisional di SQL.

Tipe hasil: Tipe dari result expressionsDiperbarui: 6 Jan 2026

Syntax

SQL
CASE WHEN condition THEN result [WHEN...] [ELSE result] END

Parameter

conditionBOOLEANwajib

Kondisi yang akan dievaluasi

resultANYwajib

Nilai yang dikembalikan jika kondisi TRUE

ELSE resultANYopsional

Nilai default jika tidak ada kondisi yang TRUE

Contoh Penggunaan

Simple CASE

SQL
1SELECT
2 product_name,
3 price,
4 CASE
5 WHEN price < 100 THEN 'Murah'
6 WHEN price < 500 THEN 'Medium'
7 ELSE 'Mahal'
8 END AS price_category
9FROM products;

Mengkategorikan produk berdasarkan harga.

CASE dengan Aggregasi

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.

Searched CASE vs Simple CASE

SQL
1-- Simple CASE
2SELECT CASE status
3 WHEN 'A' THEN 'Active'
4 WHEN 'I' THEN 'Inactive'
5 ELSE 'Unknown'
6END AS status_label
7FROM users;

Simple CASE untuk equality check.

Nested CASE

SQL
1SELECT
2 CASE
3 WHEN type = 'premium' THEN
4 CASE WHEN tenure > 12 THEN 'VIP' ELSE 'Premium' END
5 ELSE 'Standard'
6 END AS customer_tier
7FROM customers;

CASE bersarang untuk logika kompleks.

Fungsi Terkait