Ya, ada perbedaan besar antara NULL
nilai dan nilai kosong/kosong.
Berikut satu sumber yang menjelaskan perbedaannya.
Ketika myText IS NULL
:
myText IS NOT NULL
mengevaluasi keFALSE
myText != ''
mengevaluasi keNULL
(yang pada dasarnya berperilaku sama denganFALSE
akan dalam kasus khusus ini Anda menulis)
Namun, Anda tidak boleh membiasakan diri memperlakukan mereka dengan cara yang sama, karena sebagian besar waktu mereka akan berperilaku berbeda:Misalnya:
Asumsikan Anda memiliki tabel tbl
:
id text
1 NULL
2
3 abc
Catatan: 1 berisi NULL
nilai, dan 2 berisi string kosong (''
).
Jika Anda menjalankan kueri berikut:
SELECT * FROM tbl WHERE text != ''
... itu akan mengembalikan rekor 3.
Jika Anda menjalankan kueri berikut:
SELECT * FROM tbl WHERE text IS NOT NULL
... itu akan mengembalikan catatan 2 dan 3.