Sim, há uma grande diferença entre um
NULL
valor e um valor em branco/vazio. Aqui está um recurso que descreve as diferenças.
Quando
myText IS NULL
:myText IS NOT NULL
avalia comoFALSE
myText != ''
avalia comoNULL
(que essencialmente se comporta da mesma forma queFALSE
neste caso específico que você escreveu)
No entanto, você não deve ter o hábito de tratá-los da mesma forma, pois na maioria das vezes eles se comportarão de maneira diferente:Por exemplo:
Suponha que você tenha uma tabela
tbl
:id text
1 NULL
2
3 abc
Observação: 1 contém um
NULL
valor e 2 contém uma string vazia (''
). Se você executar a seguinte consulta:
SELECT * FROM tbl WHERE text != ''
... ele retornará o registro 3.
Se você executar a seguinte consulta:
SELECT * FROM tbl WHERE text IS NOT NULL
... ele retornará os registros 2 e 3.