Bisnis

CASE WHEN dalam SQL: Panduan Praktis untuk Analisis Data

Kuasai logika kondisional dengan panduan kami tentang case when sql. Pelajari sintaksis, contoh nyata, dan cara mengubah data menjadi wawasan bisnis.

Jika Anda bekerja dengan data, pendidikan CASE KETIKA dalam SQL Ini seperti pisau Swiss Army untuk kueri Anda. Ini adalah salah satu fitur yang, begitu Anda menemukannya, Anda akan bertanya-tanya bagaimana Anda bisa melakukannya tanpa itu. Ini memungkinkan Anda untuk memasukkan logika kondisional (seperti "jika ini terjadi, maka lakukan itu") langsung ke dalam analisis Anda.

Alih-alih mengekspor ribuan baris ke lembar kerja untuk kemudian memisahkan pelanggan atau mengklasifikasikan penjualan secara manual, dengan CASE KETIKA Anda dapat mengintegrasikan logika ini langsung ke dalam kueri. Bagi Anda, ini berarti laporan yang lebih cepat, analisis yang lebih akurat, dan pada akhirnya, keputusan bisnis yang lebih cerdas. Ini adalah langkah pertama untuk membuat analisis data Anda benar-benar proaktif.

Apa yang sebenarnya dilakukan oleh CASE WHEN dalam SQL?

Bayangkan aliran data yang tidak teratur, seperti antrean mobil di jalan tol. Tanpa aturan, itu hanyalah antrean panjang kendaraan. CASE KETIKA Berfungsi sebagai sistem penyortiran cerdas: mobil merah di sebelah kiri, mobil biru di sebelah kanan, dan semua mobil lainnya langsung menuju tujuan mereka.

Demikian pula, dalam SQL, Anda dapat mengambil data dan, dengan satu klausa, mengubahnya menjadi informasi yang bersih, terorganisir, dan siap untuk dianalisis.

Bagi sebuah UKM, ini bukan sekadar trik teknis, tetapi keunggulan strategis yang nyata. Analisis data berubah dari proses reaktif yang lambat dan manual menjadi proses proaktif dan instan. Keuntungan bagi bisnis Anda jelas:

  • Pembersihan real-time: perbaiki dan standarkan nilai selama ekstraksi
  • Klasifikasi dinamis: segmen pelanggan, produk, dan transaksi berdasarkan kinerja, tanggal, atau nilai.
  • Peningkatan konteks: buat kolom dengan status bisnis ("Pelanggan Setia", "Berisiko")

Pada dasarnya, CASE KETIKA Ini adalah langkah pertama untuk mengubah data Anda dari sekadar angka menjadi wawasan strategis. Ini adalah jembatan yang menghubungkan tabel mentah dengan laporan yang memungkinkan Anda mengambil keputusan yang lebih baik.

Pada bagian-bagian berikutnya, kita akan membahas sintaksis yang tepat dan contoh-contoh praktis untuk menguasai klausa ini dan menyelesaikan masalah bisnis yang konkret.

Belajar sintaksis case when langkah demi langkah

Untuk menguasai logika kondisional dalam SQL, yang terbaik adalah memulai dari dasar dan memahami dengan baik struktur dari CASE KETIKAMari kita mulai dari bentuknya yang paling langsung, yaitu "CASE Sederhana", sempurna untuk mereka yang baru memulai.

Versi ini ideal untuk memeriksa nilai-nilai dalam satu kolom dan memberikan hasil yang berbeda untuk masing-masing nilai. Sederhana, rapi, dan efektif.

Struktur CASE Sederhana

Sintaksnya sangat intuitif. Mari kita ambil contoh praktis: bayangkan Anda memiliki kolom Status Pesanan dengan nilai teks seperti 'Dikirim', 'Dalam Pengerjaan', atau 'Dibatalkan'. Untuk laporan Anda, akan jauh lebih mudah jika menggunakan kode numerik, bukan?

Begini cara mengubah teks tersebut menjadi angka:

SELECT ID Pesanan, Status Pesanan, CASE Status Pesanan WHEN 'Dikirim' THEN 1 WHEN 'Dalam Pengerjaan' THEN 2 WHEN 'Dibatalkan' THEN 3 ELSE 0 -- Ini adalah cadangan kami END AS Status Numerik FROM Penjualan;

Seperti yang Anda lihat, KASUS Tunjuk kolom yang akan diperiksa (Status Pesanan). Setiap KAPAN Periksa apakah nilai tersebut sama dengan sesuatu yang spesifik, dan LALU menetapkan hasil yang sesuai.

Klausul LAINNYA Hal ini sangat penting. Ini seperti jaring pengaman: jika tidak ada satu pun dari kondisi KAPAN Jika puas, tetapkan nilai default (di sini, 0), menyelamatkan Anda dari hasil yang mengganggu. NULLJika Anda ingin melihat tabel serupa dalam aksi, Anda dapat melihat ini. Contoh database.

Kekuatan CASE yang Dicari

"CASE Cercato" (atau Searched CASE) adalah kotak peralatan yang sesungguhnya. Di sinilah fleksibilitas instruksi ini benar-benar terwujud, karena Anda tidak lagi terbatas pada memeriksa satu kolom saja.

Dengan CASE Cercato, Anda dapat membuat kondisi kompleks yang mengevaluasi beberapa bidang secara bersamaan menggunakan operator logika seperti AND dan OR, atau perbandingan seperti > dan <Ini adalah alat yang sempurna untuk mengimplementasikan logika bisnis yang kompleks langsung dalam kueri Anda.

CASE yang dicari tidak hanya sekadar memeriksa kesamaan. Ia mengevaluasi apakah suatu kondisi secara keseluruhan benar, memberi Anda kemampuan untuk membuat aturan yang kompleks yang mencerminkan dinamika nyata bisnis Anda.

Misalkan Anda ingin mengklasifikasikan penjualan berdasarkan jumlah dan kategori produk. Berikut cara melakukannya:

SELECT ID Produk, Harga, Kategori, CASE WHEN Harga > 1000 AND Kategori = 'Elektronik' THEN 'Penjualan Premium' WHEN Harga > 500 THEN 'Penjualan Nilai Tinggi' ELSE 'Penjualan Standar' END AS Segmen Penjualan FROM Penjualan;

Kemampuan untuk menggabungkan beberapa kondisi inilah yang membuatnya CASE KETIKA Sebuah pilar yang tak tergantikan untuk analisis data apa pun yang ingin melampaui permukaan.

Berikut adalah tabel yang merangkum perbedaan utama antara kedua sintaksis tersebut, untuk membantu Anda memilih yang tepat pada waktu yang tepat.

Perbandingan antara sintaksis case sederhana dan case yang dicari

Tabel ini membandingkan secara langsung dua bentuk utama dari klausa CASE, menyoroti kapan masing-masing digunakan dan menampilkan strukturnya secara berdampingan untuk pemahaman yang lebih cepat.

Memilih di antara keduanya bukanlah soal "lebih baik" atau "lebih buruk", tetapi soal menggunakan alat yang paling sesuai untuk pekerjaan yang akan dilakukan. Untuk pemeriksaan langsung dan cepat, CASE Semplice sangat cocok; untuk logika bisnis yang kompleks, CASE Cercato adalah pilihan yang wajib.

Secara visual, Anda dapat membayangkan CASE KETIKA Seperti pohon keputusan yang mengambil data mentah dan mengarahkannya ke kategori yang jelas, membawa keteraturan dan kejelasan dalam analisis Anda.

Diagram pohon keputusan yang mengklasifikasikan pengguna berdasarkan pendaftaran dan pengeluaran, menggunakan logika CASE WHEN.

Gambar ini menunjukkan hal tersebut: bagaimana satu instruksi SQL dapat mengambil setiap pelanggan dan, berdasarkan beberapa aturan, mengarahkannya ke kategori yang tepat. Inilah kekuatan logika kondisional yang diterapkan pada data.

Bagaimana mengubah data mentah menjadi wawasan bisnis

Sekarang setelah sintaksis tidak lagi menjadi rahasia, saatnya untuk melihat CASE KETIKA beroperasi dalam skenario bisnis nyata. Kekuatan sebenarnya dari klausul ini terlihat ketika Anda menggunakannya untuk mengubah angka dan kode menjadi wawasan konkret, menjadi petunjuk strategis yang nyata untuk perusahaan Anda.

Kami akan fokus pada dua aplikasi utama: segmentasi pelanggan dan analisis margin produk. Ini adalah langkah pertama yang krusial untuk mengambil keputusan berdasarkan data, bukan insting.

Mengelompokkan pelanggan berdasarkan nilai

Salah satu tujuan paling umum bagi setiap perusahaan adalah memahami siapa pelanggan terbaiknya. Mengidentifikasi segmen pelanggan dengan nilai tinggi, sedang, dan rendah memungkinkan Anda untuk menyesuaikan kampanye pemasaran, mengoptimalkan strategi penjualan, dan meningkatkan loyalitas pelanggan.

Dengan CASE KETIKA, Anda dapat membuat segmentasi ini langsung dalam kueri Anda. Bayangkan Anda memiliki sebuah tabel Pendapatan Pelanggan dengan kolom-kolom ID Pelanggan dan Total yang Dibeli.

Begini cara Anda dapat memberi label pada setiap pelanggan sekaligus:

SELECTClienteID,TotalPembelian,CASEWHEN TotalPembelian > 5000 THEN 'Nilai Tinggi'WHEN TotalPembelian BETWEEN 1000 AND 5000 THEN 'Nilai Sedang'ELSE 'Nilai Rendah'END AS SegmentoClienteFROM FatturatoClientiORDER BY TotalPembelian DESC;

Dengan instruksi tunggal ini, Anda telah menambahkan kolom baru, Segmen Pelanggan, yang memperkaya data mentah dengan konteks bisnis yang langsung relevan. Sekarang Anda dapat dengan mudah menghitung jumlah pelanggan Anda untuk setiap segmen atau menganalisis perilaku pembelian spesifik mereka, sehingga meningkatkan ROI dari kampanye pemasaran Anda.

Menghitung dan mengklasifikasikan margin keuntungan produk

Penggunaan strategis lain dari case when sql adalah analisis profitabilitas. Tidak semua produk berkontribusi secara sama terhadap keuntungan. Mengklasifikasikan barang berdasarkan margin keuntungannya membantu Anda memutuskan di mana harus fokus, barang mana yang harus dipromosikan, dan barang mana yang mungkin sebaiknya dihentikan.

Mari kita ambil sebuah tabel Produk dengan Harga Jual dan Biaya PembelianPertama-tama, kita menghitung margin, dan segera setelah itu kita mengklasifikasikannya.

SELECTNamaProduk,HargaJual,BiayaBeli,CASEWHEN (HargaJual - BiayaBeli) / HargaJual > 0.5 THEN 'Marginal Tinggi'WHEN (HargaJual - BiayaBeli) / HargaJual BETWEEN 0.2 AND 0.5 THEN 'Marginalitas Sedang'ELSE 'Marginalitas Rendah'END AS KategoriMarginalitasFROM ProdukWHERE HargaJual > 0; -- Penting untuk menghindari pembagian dengan nol

Di sini pun, satu kueri saja telah mengubah kolom harga sederhana menjadi klasifikasi strategis, siap digunakan dalam laporan Anda untuk mengoptimalkan katalog dan memaksimalkan keuntungan.

Tiga folder berwarna, bertuliskan 'Nilai Tinggi', 'Nilai Sedang', dan 'Nilai Rendah', di samping laptop yang menampilkan 'SQL'.

Dari SQL ke otomatisasi dengan platform analitik

Kemampuan menulis kueri ini sangat berharga. Namun, apa yang terjadi ketika kebutuhan menjadi lebih kompleks atau ketika manajer non-teknis perlu membuat segmen ini secara instan? Di sinilah platform analitik data tanpa kode modern berperan.

Hal ini tidak membuat SQL menjadi usang, justru sebaliknya, hal ini meningkatkan nilainya. Logikanya tetap sama, tetapi eksekusinya menjadi otomatis dan dapat diakses oleh seluruh tim. Hasilnya adalah ROI yang langsung terasa: tim bisnis dapat mengeksplorasi data dan membuat segmen yang kompleks tanpa bergantung pada departemen IT, sehingga mempercepat proses yang menghubungkan dari data mentah menjadi informasi yang berguna untuk pengambilan keputusan. Analis, pada gilirannya, bebas untuk fokus pada masalah yang lebih kompleks, mengetahui bahwa analisis rutin ditangani secara otomatis.

Teknik lanjutan dengan CASE WHEN

Baiklah, sekarang setelah Anda memahami dasar-dasar segmentasi, saatnya untuk meningkatkan levelnya. Mari kita pelajari bersama cara mengubahnya. CASE KETIKA dalam alat untuk analisis kompleks dan pelaporan lanjutan, semuanya dalam satu kueri.

Monitor komputer menampilkan tabel omzet pelanggan premium dan catatan tempel dengan 'CASE WHEN bersarang'.

Membuat "pivot table" dengan fungsi agregasi

Salah satu teknik paling efektif adalah menggabungkan CASE KETIKA dengan fungsi agregasi seperti SUM, COUNT atau AVGTrik ini memungkinkan Anda untuk membuat "pivot table" langsung di SQL, menghitung metrik spesifik untuk segmen yang berbeda tanpa perlu menjalankan beberapa kueri.

Misalkan Anda ingin membandingkan, dalam laporan yang sama, total pendapatan yang dihasilkan oleh pelanggan 'Premium' dengan pelanggan 'Standard'. Anda dapat melakukannya sekaligus.

SELECTSUM(CASE WHEN SegmentoCliente = 'Premium' THEN Fatturato ELSE 0 END) AS FatturatoPremium,SUM(CASE WHEN SegmentoCliente = 'Standard' THEN Fatturato ELSE 0 END) AS FatturatoStandardFROM Vendite;

Apa yang sedang terjadi di sini? Fungsi SUM jumlahkan Pendapatan hanya ketika kondisi yang ditentukan dalam KAPAN Benar. Untuk semua baris lainnya, jumlah nol. Ini adalah cara yang sangat efisien untuk menggabungkan data pada beberapa dimensi secara bersamaan, menghemat waktu dan mengurangi kerumitan.

Mengelola logika berlapis dengan kasus bersarang

Terkadang, logika bisnis tidak selalu linear. Mungkin Anda perlu mengelompokkan pelanggan tidak hanya berdasarkan seberapa banyak mereka belanja, tetapi juga berdasarkan seberapa sering mereka membeli. Di sinilah logika berlapis berperan, yang dapat Anda terapkan. menyembunyikan sebuah KASUS di dalam yang lain.

Sebuah KASUS Fitur nesting memungkinkan Anda membuat subkategori yang spesifik. Misalnya, kita mungkin ingin membagi pelanggan "Nilai Tinggi" menjadi dua kelompok tambahan: "Setia" dan "Sesekali".

SELECTClienteID,TotalPengeluaran,JumlahPembelian,CASEWHEN TotalPengeluaran > 5000 THENCASEWHEN JumlahPembelian > 10 THEN 'Nilai Tinggi - Setia'ELSE 'Nilai Tinggi - Sesekali'AKHIR KETIKA TotalBelanja > 1000 MAKA 'Nilai Sedang'LAINNYA 'Nilai Rendah'AKHIR SEBAGAI SegmenTerperinciDARI RingkasanPelanggan;

Perhatian terhadap keterbacaan: meskipun sangat kuat, KASUS Struktur bersarang dapat menjadi mimpi buruk untuk dibaca dan dipelihara. Jika logika melebihi dua tingkat kedalaman, berhentilah. Mungkin lebih baik memecah masalah menjadi beberapa langkah, mungkin menggunakan Common Table Expressions (CTE) untuk membuat semuanya lebih rapi.

Mengatasi perbedaan antara berbagai basis data

Meskipun CASE KETIKA Meskipun merupakan standar SQL yang sudah mapan, terdapat perbedaan kecil dalam implementasi di antara berbagai sistem manajemen basis data (DBMS). Memahami perbedaan-perbedaan ini sangat penting untuk menulis kode yang portabel.

  • MySQL: Sepenuhnya sesuai dengan standar. Anda dapat menggunakan KASUS hampir di mana-mana: dalam klausul PILIH, DIMANA, GROUP BY dan URUTKAN MENURUT.
  • PostgreSQL: Ia mengikuti standar dengan sangat ketat dan menawarkan pengelolaan jenis data yang sangat andal, sehingga konversi jenis data di dalamnya LALU dikelola dengan cara yang dapat diprediksi.
  • SQL Server: Dukungan KASUS dengan sempurna, tetapi juga menawarkan fungsi yang tidak standar. IIF(kondisi, nilai_jika_benar, nilai_jika_salah). IIF Ini adalah jalan pintas untuk logika biner sederhana (hanya satu IF/ELSE), tetapi CASE KETIKA Tetap menjadi pilihan terbaik untuk keterbacaan dan portabilitas.

Memahami nuansa-nuansa ini akan membantu Anda menulis query case when SQL yang tidak hanya berfungsi, tetapi juga tangguh dan mudah disesuaikan dengan berbagai konteks teknologi.

Kesalahan umum dan cara mempercepat kueri Anda

Menulis sebuah CASE KETIKA Yang berfungsi hanyalah langkah pertama. Lompatan kualitas yang sesungguhnya terjadi ketika Anda belajar untuk membuatnya tidak hanya benar, tetapi juga cepat dan bebas dari kesalahan. Query yang lambat atau penuh bug dapat merusak laporan Anda dan memperlambat pengambilan keputusan bisnis.

Mari kita lihat bersama cara menyempurnakan teknik, menghindari jebakan yang paling umum, dan mengoptimalkan kinerja analisis Anda.

Perhatikan urutan: trik kecil yang membuat perbedaan besar

Berikut adalah detail yang sering diabaikan: dalam suatu klausul CASE KETIKA, basis data menganalisis kondisi dalam urutan yang tepat seperti yang Anda tulis. Begitu menemukan yang benar, basis data berhenti dan mengembalikan hasilnya.

Perilaku ini memiliki dampak yang sangat besar pada kinerja, terutama saat bekerja dengan tabel yang memiliki jutaan baris.

Triknya? Selalu letakkan kondisi yang menurut Anda akan terjadi paling sering di bagian atas. Dengan cara ini, mesin database akan melakukan upaya minimal untuk sebagian besar baris, sehingga waktu eksekusi akan berkurang secara drastis.

Kesalahan klasik (dan cara menghindarinya)

Bahkan analis yang paling berpengalaman pun kadang-kadang melakukan kesalahan klasik. Mengetahui kesalahan-kesalahan tersebut adalah cara terbaik untuk segera mengidentifikasinya dan memperbaikinya.

  • Melupakan klausul LAINNYA
    Ini adalah kesalahan nomor satu. Jika Anda mengabaikan LAINNYA dan tidak ada syarat-syaratmu KAPAN Jika terjadi, hasil untuk baris tersebut akan menjadi NULLIni NULL Hal yang tidak terduga dapat menimbulkan efek domino, mengacaukan perhitungan selanjutnya.
  • Kode risiko:SELECTHarga,CASEWHEN Harga > 100 THEN 'Tinggi'WHEN Harga > 50 THEN 'Sedang'END AS RentangHarga -- Jika Harga adalah 40, hasilnya adalah NULLFROM Produk;
  • Solusi yang aman:
    Selalu tambahkan sebuah LAINNYA sebagai jaring pengaman untuk menangkap semua kasus yang tidak terduga.SELECTHarga,CASEWHEN Harga > 100 THEN 'Tinggi'WHEN Harga > 50 THEN 'Sedang'ELSE 'Rendah' -- Inilah jaring pengaman kita!END AS KategoriHargaFROM Produk;
  • Jenis data yang bertentangan
    Semua ekspresi setelah LALU harus mengembalikan jenis data yang sama (atau jenis yang kompatibel). Jika Anda mencoba mencampur teks, angka, dan tanggal dalam kolom yang sama yang dihasilkan oleh KASUS, database akan menampilkan pesan kesalahan.
  • Kondisi yang tumpang tindih
    Ini adalah kesalahan logika yang lebih tersembunyi. Jika Anda memiliki kondisi yang tumpang tindih, ingatlah aturan emas: hanya yang sebelumnya yang benar akan dijalankan. Urutan adalah segalanya. Jika Anda memasukkan KETIKA TotalPembelian > 1000 sebelum KETIKA Total Pembelian > 5000Tidak ada pelanggan yang akan pernah diberi label 'VIP', karena syarat pertama akan selalu 'menangkap' mereka terlebih dahulu.
  • Apakah ada alternatif untuk CASE WHEN?

    Meskipun SQL adalah standar universal – dan hampir selalu pilihan terbaik untuk keterbacaan dan kompatibilitas – beberapa dialek SQL menawarkan jalan pintas.

    Dalam SQL Server, misalnya, Anda dapat menemukan fungsi IIF(kondisi, nilai_jika_benar, nilai_jika_salah). Ini cocok untuk logika biner sederhana, tetapi KASUS Tetap tak tertandingi dalam mengelola kondisi yang beragam dan kejelasan dalam skenario yang kompleks.

    Dalam sebagian besar kasus, patuhi standar CASE KETIKA Ini adalah pilihan yang paling bijaksana. Hal ini memastikan bahwa kode Anda dapat dipahami oleh siapa pun dan berfungsi tanpa masalah di berbagai platform.

    Melampaui CASE WHEN: Ketika SQL tidak lagi cukup

    Menulis kueri CASE WHEN sangat berguna. Namun, jika Anda harus menulis ulang logika segmentasi yang sama setiap minggu untuk laporan bulanan, atau lebih buruk lagi, jika tim pemasaran Anda meminta "bisakah Anda menambahkan segmen ini juga?" setiap dua hari, Anda memiliki masalah skalabilitas, bukan masalah SQL.

    Ketika penulisan kueri menjadi bottleneck

    Logika kondisional tetap sama—baik Anda menuliskannya secara manual maupun mendefinisikannya melalui antarmuka—tetapi waktu yang dibutuhkan untuk melakukannya berubah secara drastis. Sebuah kueri yang membutuhkan 20 menit untuk ditulis, diuji, dan didokumentasikan dapat dibuat ulang dalam 2 menit menggunakan antarmuka visual. Kalikan itu dengan semua analisis yang Anda lakukan dalam sebulan, dan Anda akan memahami ke mana waktu Anda pergi.

    Masalah sebenarnya bukanlah menulis SQL. Masalahnya adalah saat Anda menulis kueri, orang lain dalam tim Anda menunggu data untuk mengambil keputusan. Dan ketika data akhirnya tiba, seringkali jendela waktu yang berguna untuk bertindak sudah menyempit.

    Platform seperti ELECTE hal ini: menerjemahkan logika bisnis menjadi kueri. Ini tidak menghilangkan nilai dari kemampuan menulis SQL - sebaliknya, memahami apa yang terjadi di balik layar membuat Anda jauh lebih efektif dalam menggunakan alat analitik apa pun. Namun, ini menghilangkan pekerjaan yang berulang.

    Perbedaan praktisnya: daripada menghabiskan berjam-jam untuk menulis dan mendebug kueri untuk mensegmentasi pelanggan, Anda cukup menghabiskan 5 menit untuk mendefinisikan aturan dan sisanya untuk menganalisis apa arti segmen-segmen tersebut bagi bisnis. Ini bukan sihir, ini hanya menghilangkan gesekan antara "saya punya pertanyaan" dan "saya punya jawaban".

    Jika Anda menghabiskan setengah hari untuk mengekstrak data daripada menganalisisnya, Anda mungkin sudah menyadari di mana letak kemacetan.

    Dari SQL manual ke wawasan otomatis

    Platform seperti ELECTE logika CASE WHEN melalui antarmuka tanpa kode. Tetapkan aturan segmentasi dengan beberapa klik saja, tanpa perlu menulis satu baris kode pun. Hasilnya: analisis yang sebelumnya membutuhkan waktu berjam-jam kini siap dalam hitungan menit, dapat diakses oleh seluruh tim tanpa bergantung pada tim IT.

    Di balik layar, platform ini menjalankan logika kondisional yang serupa—dan seringkali jauh lebih canggih—membebaskan Anda dari tugas-tugas yang berulang. Hal ini memungkinkan manajer dan analis untuk fokus pada "mengapa" di balik angka-angka, daripada "bagaimana" mengekstraknya.

    Pertanyaan Umum tentang CASE WHEN

    Bahkan setelah melihat beberapa contoh, wajar jika Anda masih memiliki beberapa pertanyaan. Kami akan menjawab pertanyaan-pertanyaan umum yang sering muncul saat mulai menggunakan CASE KETIKA dalam SQL.

    Apa perbedaan antara CASE dan IF dalam SQL?

    Perbedaan utama: portabilitas. The CASE KETIKA Merupakan bagian dari standar SQL (ANSI SQL), yang berarti kode Anda akan berfungsi pada hampir semua database modern, dari PostgreSQL dan MySQL a SQL Server dan Oracle.

    Pendidikan IF(), sebaliknya, seringkali merupakan fungsi spesifik dari dialek SQL tertentu, seperti T-SQL dari SQL Server. Meskipun mungkin terlihat lebih singkat untuk kondisi biner sederhana, CASE KETIKA Ini adalah pilihan para profesional untuk menulis kode yang mudah dibaca dan berfungsi di mana saja tanpa perlu dimodifikasi.

    Bisakah saya menggunakan CASE WHEN dalam klausa WHERE?

    Tentu saja. Meskipun bukan penggunaan yang paling umum, dalam situasi tertentu, hal ini sangat powerful untuk membuat filter kondisional yang kompleks. Bayangkan, misalnya, Anda ingin mengekstrak semua pelanggan "premium", atau hanya pelanggan "standar" yang tidak melakukan pembelian selama lebih dari setahun.

    Begini cara Anda dapat mengatur logika:

    SELECT NomeCliente, UltimoAcquistoFROM ClientiWHERECASEWHEN Segmento = 'Premium' THEN 1WHEN Segmento = 'Standard' AND UltimoAcquisto < '2023-01-01' THEN 1ELSE 0END = 1;

    Pada dasarnya, Anda sedang mengatakan kepada database: "hanya pertimbangkan baris-baris di mana logika kompleks ini mengembalikan nilai 1".

    Berapa banyak kondisi WHEN yang bisa saya miliki?

    Secara teoritis, standar SQL tidak membatasi secara ketat jumlah KAPAN. Pada kenyataannya, however, sebuah kueri dengan puluhan kondisi menjadi mimpi buruk untuk dibaca, dipelihara, dan dioptimalkan.

    Jika Anda sedang menulis sebuah KASUS yang tidak pernah berakhir, anggaplah itu sebagai peringatan. Mungkin ada cara yang lebih cerdas untuk menyelesaikan masalah ini, mungkin dengan menggunakan sebuah tabel pencarian (sebuah tabel pemetaan) untuk membuat kueri menjadi lebih bersih dan efisien.

    Bagaimana CASE WHEN menangani nilai NULL?

    Di sini perlu berhati-hati. Nilai-nilai NULL Dalam SQL, kondisi ini bersifat khusus. Sebuah kondisi seperti KETIKA Kolom = NULL Tidak akan pernah berfungsi seperti yang Anda harapkan, karena dalam SQL NULL tidak sama dengan apa pun, bahkan dengan dirinya sendiri. Untuk memeriksa apakah suatu nilai adalah NULL, sintaks yang benar selalu KETIKA Kolom NULL.

    Dalam hal ini, klausul LAINNYA Jadilah sahabat terbaikmu. Ini memungkinkanmu untuk mengelola dengan rapi dan dapat diprediksi semua kasus yang tidak tercakup oleh KAPAN, termasuk NULLGunakan ini untuk menetapkan nilai default dan Anda akan terhindar dari hasil yang tidak terduga dalam analisis Anda.

    Sumber daya untuk pertumbuhan bisnis