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 NULLavalia comoFALSEmyText != ''avalia comoNULL(que essencialmente se comporta da mesma forma queFALSEneste 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.