Masalah NULL dan Fungsi ISNULL() pada Ms SQL Server


Fungsi IsNull() berguna untuk memeriksa suatu kolom ada datanya atau tidak. dan jika tidak ada datanya atau NULL, maka diberi data pengganti.

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 :)

0 Comments


EmoticonEmoticon