NULLIF di SQL

Menghasilkan NULL jika dua nilai sama. Trik andalan untuk mencegah error pembagian dengan nol.

Penjelasan sederhana

NULLIF(a, b) menghasilkan NULL kalau a sama dengan b. Kalau berbeda, hasilnya tetap a.

Kegunaan utamanya mencegah error pembagian dengan nol. Membagi angka dengan 0 membuat query gagal, tapi membagi dengan NULL hanya menghasilkan NULL. Jadi penyebutnya "diamankan" dengan NULLIF(penyebut, 0).

Sintaks

NULLIF(nilai1, nilai2)
BagianKeterangan
nilai1Nilai yang dikembalikan jika berbeda dengan nilai2.
nilai2Jika nilai1 sama dengan ini, hasilnya NULL.

Tanda [kurung siku] berarti bagian opsional. Kata kunci SQL tidak membedakan huruf besar-kecil, tapi menulisnya dengan huruf besar membuat query lebih mudah dibaca.

Contoh NULLIF

Data contoh: karyawan

Tabel karyawan

idnamadept_idkotagajitgl_masukatasan_id
1 Andi Pratama 3 Bandung 12500000 2019-03-11 NULL
2 Bunga Lestari 1 Jakarta 9800000 2020-07-01 NULL
3 Candra Wijaya 3 Bandung 8200000 2021-02-15 1
4 Dewi Anggraini 2 Jakarta 7500000 2022-05-09 6
5 Eko Saputra 1 Jakarta 6900000 2023-01-16 2
6 Fajar Nugroho 2 Surabaya 11000000 2018-09-03 NULL
7 Gita Permata 3 Jakarta 8200000 2023-08-21 1
8 Hendra Gunawan NULL Medan 5500000 2024-04-02 NULL
query.sql
SELECT 500000 / NULLIF(0, 0) AS aman,
       500000 / NULLIF(4, 0) AS normal;
>_ Jalankan & ubah query ini di browser

Hasil 1 baris

amannormal
NULL 125000

Pembagian dengan nol tidak lagi error, melainkan menghasilkan NULL.

Cara kerjanya, langkah demi langkah

  1. Kolom aman: NULLIF(0, 0). Karena 0 sama dengan 0, hasilnya NULL. Lalu 500.000 ÷ NULL = NULL, tanpa error.
  2. Kolom normal: NULLIF(4, 0). Karena 4 tidak sama dengan 0, hasilnya tetap 4. Lalu 500.000 ÷ 4 = 125.000.

Dipakai untuk apa di kantor?

  • Menghitung persentase capaian: realisasi / NULLIF(target, 0).
  • Menghitung rata-rata per item ketika jumlah item bisa 0.

Kesalahan yang sering terjadi

  • Lupa bahwa hasilnya NULL, bukan 0. Kalau laporan harus menampilkan 0, bungkus lagi dengan COALESCE(..., 0).
Progres bab Logika & NULL 0/3 dipelajari
Lanjut: Subquery

Belajar SQL bareng mentor

Hafal sintaks itu mudah. Menjawab pertanyaan bisnis, itu skill.

Private Class Python & SQL untuk Data: dari query dasar sampai JOIN dan studi kasus kerja, dengan kurikulum dan jadwal yang menyesuaikan kamu.

Lihat Private Class