Ja, er is een groot verschil tussen een NULL
waarde en een lege/lege waarde.
Hier is één bron dat beschrijft de verschillen.
Wanneer myText IS NULL
:
myText IS NOT NULL
evalueert totFALSE
myText != ''
evalueert totNULL
(die zich in wezen hetzelfde gedraagt alsFALSE
zou je in dit specifieke geval hebben geschreven)
U moet er echter geen gewoonte van maken om ze hetzelfde te behandelen, aangezien ze zich meestal anders zullen gedragen:Bijvoorbeeld:
Stel dat u een tabel tbl
. heeft :
id text
1 NULL
2
3 abc
Opmerking: 1 bevat een NULL
waarde, en 2 bevat een lege tekenreeks (''
).
Als u de volgende query uitvoert:
SELECT * FROM tbl WHERE text != ''
... het zal record 3 teruggeven.
Als u de volgende query uitvoert:
SELECT * FROM tbl WHERE text IS NOT NULL
... het zal records 2 en 3 teruggeven.