Sí, hay una gran diferencia entre un NULL
valor y un valor en blanco/vacío.
Aquí está un recurso que describe las diferencias.
Cuando myText IS NULL
:
myText IS NOT NULL
se evalúa comoFALSE
myText != ''
evalúa aNULL
(que esencialmente se comporta igual queFALSE
sería en este caso específico que escribiste)
Sin embargo, no debes acostumbrarte a tratarlos igual, ya que la mayoría de las veces se comportarán de manera diferente:Por ejemplo:
Suponga que tiene una tabla tbl
:
id text
1 NULL
2
3 abc
NULL
valor, y 2 contiene una cadena vacía (''
).
Si ejecuta la siguiente consulta:
SELECT * FROM tbl WHERE text != ''
... devolverá el registro 3.
Si ejecuta la siguiente consulta:
SELECT * FROM tbl WHERE text IS NOT NULL
... devolverá los registros 2 y 3.