tbl_coba
Nama Harga
------ ------
A 12000
B NULL
C 21000
D 20000
E 10000
Perhatikan query-query di bawah ini :
SELECT AVG(harga) FROM tbl_coba
SELECT AVG(ISNULL(harga, 0)) FROM tbl_coba
Hasil AVG(price) didapat dari perhitungan 6300 dibagi 4. Sedangkan hasil AVG(ISNULL(price,0)) didapat dari 6300 / 5. Pembagi AVG(price) adalah 4 karena NULL tidak diikutsertakan. Hasil mana yang benar tergantung dari konteksnya.
Dari ilustrasi di atas, NULL berpotensi dapat menyebabkan perbedaan penghitungan. NULL juga dapat menyebabkan program aplikasi yang mengakses tabel tersebut akan mendapatkan error (Baca Mengatasi Kolom yang Tidak Memiliki Data (NULL) pada VB.Net). Dalam hal ini fungsi ISNULL() menjadi fungsi yang sangat berguna untuk menghindari kesalahan.
Antisipasi agar pada tabel bebas dari NULL adalah membuat kolom menjadi NOT NULL pada saat tabel dibuat atau menggunakan constraint DEFAULT. Tapi kadang juga NULL tidak dapat dihindari :)
Tidak ada komentar:
Posting Komentar