Ja, der er stor forskel på en NULL
værdi og en tom/tom værdi.
Her er én ressource der beskriver forskellene.
Når myText IS NULL :
myText IS NOT NULLevalueres tilFALSEmyText != ''evalueres tilNULL(som i det væsentlige opfører sig på samme måde somFALSEville du i dette specifikke tilfælde skrev)
Du bør dog ikke vænne dig til at behandle dem ens, da de oftest vil opføre sig anderledes:For eksempel:
Antag, at du har en tabel tbl :
id text
1 NULL
2
3 abc
Bemærk: 1 indeholder en NULL værdi, og 2 indeholder en tom streng ('' ).
Hvis du kører følgende forespørgsel:
SELECT * FROM tbl WHERE text != ''
... det vil returnere post 3.
Hvis du kører følgende forespørgsel:
SELECT * FROM tbl WHERE text IS NOT NULL
... det vil returnere post 2 og 3.