Esperaria-se true para esta consulta:
SELECT null != 1234;
Esperaria-se false para esta consulta:
SELECT NULL = 1234;
Assustados saber que ambos resultam em NULL !!!
Portanto, cuidado em comparações! Pois uma consulta como a abaixo pode não apresentar o resultado esperado se um dos DADO's for NULL
SELECT
*
FROM
OBJETO1, OBJETO2
WHERE
OBJETO1.DADO != OBJETO2.DADO
A forma apropriada para fazer comparações com NULL é usando o IS DISTINCT FROM
SELECT NULL IS DISTINCT FROM 2511; -- Retorna TRUE
SELECT NULL IS NOT DISTINCT FROM 2511; -- Retorna FALSE
Fontes:
Posted by Bruno Vieira to ZeroGlosa (2015-10-02 12:28)