DISTINCT dan Menjinakkan NULL dengan IFNULL & COALESCE

Menghilangkan data kembar dengan DISTINCT dan mengganti nilai kosong dengan IFNULL, COALESCE, dan NULLIF agar laporan terlihat rapi.

Part 15 dari 38 ± 30 menit Gratis

DISTINCT: buang yang kembar

Berapa kota asal pelanggan KopiKita? Kalau kita lihat kolom kota, Jakarta muncul tiga kali. DISTINCT menampilkan setiap nilai cukup sekali:

SELECT kota FROM pelanggan;             -- 10 baris, ada yang berulang
SELECT DISTINCT kota FROM pelanggan;    -- 6 baris, tiap kota sekali

Dengan lebih dari satu kolom, DISTINCT menilai kombinasinya:

SELECT DISTINCT kota, YEAR(tgl_daftar) AS tahun FROM pelanggan;

Jika ingin menghitung jumlah nilai unik: SELECT COUNT(DISTINCT kota) FROM pelanggan; (dibahas di bab Agregat).

Masalah NULL di laporan

Di laporan, tulisan NULL terlihat kurang sedap dan hitungan yang melibatkan NULL menghasilkan NULL. Solusinya: mengganti NULL dengan nilai pengganti.

IFNULL(x, pengganti)

SELECT nama, IFNULL(email, 'belum diisi') AS email_kontak
FROM pelanggan;

Bila email ada isinya, pakai isinya; bila NULL, pakai 'belum diisi'.

COALESCE(a, b, c, ...)

Seperti IFNULL tetapi bisa banyak pilihan: ambil nilai pertama yang tidak NULL dari daftar. COALESCE adalah standar SQL, jadi berlaku di hampir semua database.

SELECT COALESCE(email, telepon, 'tidak ada kontak') FROM pelanggan;

NULLIF(a, b): kebalikannya

Menghasilkan NULL jika a sama dengan b. Sering dipakai untuk menghindari pembagian dengan nol:

SELECT total / NULLIF(jumlah, 0) FROM laporan;   -- jumlah 0 → NULL, bukan error

NULL dan hitungan

EkspresiHasil
5 + NULLNULL
IFNULL(NULL, 0) + 55
CONCAT('a', NULL)NULL
CONCAT('a', IFNULL(NULL, ''))a

Kapan NULL dibiarkan? NULL itu jujur: artinya "tidak tahu". Jangan buru-buru mengisinya dengan 0 atau '-' di dalam database, karena rata-rata, hitungan, dan filter bisa jadi menyesatkan. Ganti NULL hanya saat menampilkan data, dengan IFNULL/COALESCE.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X