Menggunakan NULL dalam SQL Server

Di dalam database, NULL digunakan untuk menunjukkan tidak adanya nilai data berupa apa pun. Misalnya, saat dalam data pelanggan, email pelanggan tidak diketahui kita dapat mencatatnya sebagai NULL di database.

Jika dalam ekspresi logika biasa hasilnya adalah TRUE dan FALSE, pada ekspresi yang melibatkan nilai NULL akan ada hasil UNKNOWN atau tidak diketahui.

1. INSERT Nilai NULL ke Dalam Tabel

Syarat agar dapat memasukan nilai NULL ke dalam suatu field dalam table, property field tersebut harus NULLABLE, seperti kolom contact pada tabel customer di bawah ini.



Ada 2 cara untuk memasukan nilai NULL dalam field contact, pertama tidak memasukan field contact dalam list field INSERT:

INSERT INTO [dbo].[customers] (customercode, customername, custlevelcode, [address], phone, startdate, createddate, createdby)
VALUES ('06.000021', 'AISYAH', '003', 'Jl. Surapati', '08122', '2022-02-03', GETDATE(), 'rani');

Atau menuliskan nilai NULL pada list VALUE untuk field contact:

INSERT INTO [dbo].[customers] (customercode, customername, custlevelcode, contact, [address], phone, startdate, createddate, createdby)
VALUES ('06.000022', 'MARISA', '003', NULL, 'Jl. Merdeka', '08164', '2022-02-03', GETDATE(), 'rani');



Hasilnya nilai contact akan NULL.



2. Mencari/Memfilter Nilai NULL dengan Nilai Lain pada Query SELECT

Untuk memfilter nilai null pada WHERE clause sebuah query kita tidak bisa menggunakan sama dengan ("="), melainkan menggunakan IS NULL. Mari kita coba menggunakan keduanya dan melihat perbedaan hasilnya:

SELECT * FROM [dbo].[customers] WHERE contact = NULL


SELECT * FROM [dbo].[customers] WHERE contact IS NULL



Jadi kesimpulannya untuk memfilter atau mencari nilai yang sama untuk nilai NULL menggunakan IS NULL bukan = NULL.

Sebaliknya jika kita ingin menampilkan hanya yang memiliki nilai (tidak null) maka dapat menggunakan IS NOT NULL.

SELECT * FROM [dbo].[customers] WHERE contact IS NOT NULL

Hasilnya:


Catatan: nilai string kosong bukanlah nilai NULL.


2. Menampilkan Nilai NULL dengan Nilai Lain pada Query SELECT

Pengalaman saya saat coding dengan beberapa bahasa pemrograman ada bagian tertentu yang ternyata memang tidak support nilai NULL sehingga perlu nilai pengganti yang ditampilkan jika bernilai null.


Jika kita ingin kolom contact yang bernilai null digantikan dengan nilai string blank maka dapat menggunakan query seperti berikut:

SELECT customercode, 
       customername, 
       contact = ISNULL(contact,'')
FROM [dbo].[customers] 
WHERE customercode BETWEEN '06.000019' AND '06.000022'

Maka hasilnya sebagai berikut:



Atau bisa juga menggantikan nilai null dengan nilai kolom lain, misal jika contact kosong maka diisi oleh nilai customername.

SELECT customercode, 
       customername, 
       contact = ISNULL(contact,customername)
FROM [dbo].[customers] 
WHERE customercode BETWEEN '06.000019' AND '06.000022'

Maka hasilnya seperti di bawah ini.






Post a Comment

0 Comments