SQL WHEN CASE: Panduan Lengkap

Pembaharuan Terakhir: 20 Oktober 2025
SQL KETIKA KASUS

SQL, atau Structured Query Language, adalah alat yang ampuh untuk mengelola dan memanipulasi basis data relasional. Salah satu fitur SQL yang paling berharga adalah kemampuannya untuk menangani pernyataan kondisional. Pernyataan kondisional memungkinkan Anda untuk menentukan tindakan yang berbeda berdasarkan kondisi tertentu, memberikan fleksibilitas dan kontrol dalam kueri Anda. Di antara berbagai pernyataan kondisional dalam SQL, pernyataan WHEN CASE menonjol sebagai alat yang serbaguna dan efisien . Pernyataan ini memungkinkan Anda untuk melakukan logika kondisional dalam sebuah kueri, menjadikannya sumber daya yang sangat berharga dalam perangkat SQL Anda.

SQL WHEN CASE: Menjelajahi Dasar-Dasarnya

Untuk memahami potensi penuh pernyataan SQL WHEN CASE, penting untuk memahami sintaksis dan fungsi dasar. Pernyataan SQL WHEN CASE terutama digunakan untuk melakukan evaluasi kondisional dan mengembalikan hasil spesifik berdasarkan kondisi yang dipenuhi. Mari kita lihat struktur dasar pernyataan SQL WHEN CASE:

SELECT columna1,
       columna2,
       (CASE
           WHEN condicion1 THEN resultado1
           WHEN condicion2 THEN resultado2
           ELSE resultado
        END) AS alias
FROM nombre_tabla;

Dalam sintaks di atas, columna1 y columna2 mewakili kolom yang ingin Anda ambil dari tabel yang ditentukan. Kata kunci CASE memulai evaluasi bersyarat, diikuti oleh serangkaian kondisi WHEN dan hasil yang sesuai. Klausa ELSE memberikan hasil default jika tidak ada kondisi yang terpenuhi. Terakhir, kata kuncinya END menyimpulkan kalimat kondisional. Hasil evaluasi diberi nama alias untuk memudahkan referensi.

Menyelami lebih dalam SQL WHEN CASE

Sekarang setelah kita membahas struktur dasar pernyataan SQL WHEN CASE, mari kita jelajahi berbagai aspeknya secara lebih rinci. Dengan mendalami penerapan, variasi, dan praktik terbaiknya, kita dapat memanfaatkan potensi penuh dari pernyataan kondisional yang hebat ini.

1. SQL WHEN CASE untuk evaluasi kondisional sederhana

Kasus penggunaan paling sederhana untuk pernyataan SQL WHEN CASE adalah melakukan evaluasi kondisional langsung. Dengan menentukan kondisi dan hasil yang sesuai, Anda dapat mengontrol hasil kueri Anda secara efektif. Pertimbangkan contoh berikut ini:

SELECT id_pedido,
       fecha_pedido,
       (CASE
           WHEN monto_total > 1000 THEN 'Pedido de alto valor'
           ELSE 'Pedido estándar'
        END) AS categoria_pedido
FROM pedidos;

Dalam contoh ini, kami mengambil kolom id_pedido y fecha_pedido dari meja pedidos. Kalimat CASE mengevaluasi kolom monto_total, menetapkan nilai 'Pesanan Bernilai Tinggi' jika jumlah totalnya melebihi 1000, dan 'Pesanan Standar' jika tidak. Hasilnya ditampilkan dengan alias categoria_pedido.

2. Menggunakan SQL WHEN CASE dengan Fungsi Agregat

Pernyataan SQL WHEN CASE juga dapat digunakan bersama dengan fungsi agregat untuk melakukan perhitungan kondisional. Hal ini memungkinkan Anda menghitung nilai secara dinamis berdasarkan kondisi tertentu. Pertimbangkan skenario berikut:

  Normalisasi Basis Data: Panduan Lengkap dan Contoh Langkah demi Langkah

Anda memiliki tabel yang disebut empleados dengan kolom id_empleado, nombre, apellido y salario. Anda ingin menghitung gaji rata-rata karyawan, tetapi tidak termasuk gaji di bawah ambang batas tertentu. Berikut ini cara Anda dapat mencapainya menggunakan pernyataan SQL WHEN CASE:

SELECT (CASE
           WHEN salario > 50000 THEN salario
           ELSE NULL
        END) AS salario_filtrado,
       AVG(salario) AS salario_promedio
FROM empleados;

Dalam contoh ini, pernyataan CASE mengevaluasi kolom salario, menetapkan nilai gaji jika melebihi 50000 dan NULL jika tidak. Fungsi AVG digunakan untuk menghitung gaji rata-rata, tidak termasuk gaji yang difilter. Hal ini memberi Anda kontrol lebih besar atas kalkulasi agregasi Anda, sehingga memungkinkan Anda menyaring data yang tidak diinginkan.

3. Menangani beberapa kondisi dengan SQL WHEN CASE

Dalam beberapa kasus, Anda mungkin perlu mengevaluasi beberapa kondisi dalam satu pernyataan SQL WHEN CASE. Untungnya, SQL menyediakan cara sederhana untuk menangani skenario seperti itu. Dengan menggabungkan beberapa kondisi WHEN dan hasil yang sesuai, Anda dapat membuat evaluasi kondisional yang kompleks. Pertimbangkan contoh berikut ini:

SELECT nombre_producto,
       precio_unitario,
       (CASE
           WHEN precio_unitario > 50 THEN 'Costoso'
           WHEN precio_unitario > 20 THEN 'Moderado'
           ELSE 'Accesible'
        END) AS categoria_precio
FROM productos;

Dalam contoh ini, pernyataan CASE mengevaluasi kolom precio_unitario dan menetapkan kategori harga yang sesuai di tergantung pada kondisinya terpenuhi. Dengan menyusun kondisi Anda secara efektif, Anda dapat menangani berbagai skenario dan mengkategorikan data Anda sesuai dengan itu.

4. SQL WHEN CASE dalam operasi JOIN

Pernyataan SQL WHEN CASE juga dapat digunakan dalam operasi JOIN, memungkinkan Anda untuk menggabungkan tabel secara kondisional berdasarkan kriteria tertentu. Hal ini memungkinkan pengambilan data yang lebih dinamis dan fleksibel. Pertimbangkan skenario berikut:

  Apa itu basis data dan apa kegunaannya?

Anda memiliki dua papan, clientes y pedidos, dengan kolom umum id_cliente. Anda ingin mengambil informasi pelanggan beserta status pesanan terkait. Berikut ini cara Anda mencapainya menggunakan pernyataan SQL WHEN CASE:

SELECT c.id_cliente,
       c.nombre_cliente,
       p.estado_pedido
FROM clientes c
JOIN pedidos p ON c.id_cliente = p.id_cliente
WHERE (CASE
           WHEN p.estado_pedido = 'Enviado' THEN 1
           ELSE 0
        END) = 1;

Dalam contoh ini, pernyataan CASE Ini digunakan dalam ayat WHERE untuk menyaring secara kondisional meja-meja yang disatukan. Hanya baris dengan status pesanan 'Dikirim' yang dikembalikan, memberi Anda serangkaian hasil yang lebih spesifik dan relevan.

FAQ SQL KAPAN KASUS

  1. Apa tujuan dari pernyataan SQL WHEN CASE? Digunakan untuk melakukan evaluasi bersyarat dan mengembalikan hasil spesifik berdasarkan kondisi yang dipenuhi. Memberikan fleksibilitas dan kontrol dalam kueri SQL Anda, memungkinkan Anda menangani berbagai skenario secara efektif.
  2. Bisakah saya menggunakan beberapa kondisi WHEN dalam pernyataan SQL WHEN CASE yang tunggal? Ya, Anda dapat menggunakan beberapa kondisi WHEN dalam satu pernyataan SQL WHEN CASE. Dengan menggabungkan beberapa kondisi dan hasil yang sesuai, Anda dapat membuat evaluasi kondisional yang kompleks.
  3. Apakah klausa ELSE wajib dalam pernyataan SQL WHEN CASE? Tidak, klausa ELSE tidak wajib dalam pernyataan SQL WHEN CASE. Namun, disarankan untuk menyertakan klausa ELSE untuk memberikan hasil default jika tidak ada kondisi yang terpenuhi.
  4. Dapatkah saya menggunakan pernyataan SQL WHEN CASE dengan fungsi agregat? Ya, Anda dapat menggunakan pernyataan SQL WHEN CASE dengan fungsi agregasi untuk melakukan perhitungan kondisional. Hal ini memungkinkan Anda menghitung nilai secara dinamis berdasarkan kondisi tertentu.
  5. Apakah pernyataan SQL WHEN CASE hanya berlaku dalam pernyataan SELECT? Tidak, pernyataan SQL WHEN CASE dapat digunakan di berbagai bagian kueri SQL, termasuk pernyataan SELECT, WHERE, dan operasi JOIN. Ini memberi Anda fleksibilitas untuk mengontrol secara kondisional berbagai aspek dari pertanyaan Anda.
  6. Apakah ada pertimbangan kinerja saat menggunakan pernyataan SQL WHEN CASE? Meskipun pernyataan ini merupakan alat yang ampuh, penting untuk mempertimbangkan dampaknya pada kinerja kueri. Seperti halnya pernyataan kondisional lainnya, evaluasi yang berlebihan atau rumit dapat memengaruhi waktu eksekusi kueri. Disarankan untuk mencoba dan mengoptimalkan kueri Anda untuk kinerja optimal.
  Panduan Lengkap untuk Analisis Data Modern dan Arsitektur Data

Kesimpulan

Pernyataan SQL WHEN CASE adalah alat penting dalam perangkat pengembang SQL. Dengan kemampuannya untuk melakukan evaluasi kondisional dan mengembalikan hasil spesifik, pernyataan ini memungkinkan Anda untuk menangani berbagai skenario dengan mudah dan akurat. Dengan menguasai seni pernyataan kondisional dalam SQL, Anda dapat meningkatkan keterampilan manajemen basis data dan membuka kemungkinan baru dalam manipulasi data.