Verificação de valores nulos em SQL
Gabarito: letra E. A única sintaxe correta para verificar se um campo é nulo em SQL é utilizando IS NULL. Comparações com operadores comuns (=, <>, etc.) retornam UNKNOWN (lógica de três valores) e não são efetivas. As demais alternativas apresentam construções inválidas ou ineficazes.
A linguagem SQL utiliza uma lógica de três valores (TRUE, FALSE, UNKNOWN). Valores NULL não são iguais a nada, inclusive a outro NULL. Portanto, a comparação correta é feita com os operadores IS NULL ou IS NOT NULL. O contexto fornecido reforça: "A comparação com NULL não deve ser feita com os operadores lógicos = ou <>, mas sim com IS NULL e IS NOT NULL. Ao comparar qualquer coisa com NULL usando os operadores lógicos comuns, será retornado um resultado desconhecido na comparação (UNKNOWN) e, por isso, não serão retornadas linhas."
Alternativa A — ❌ Incorreta
A função NOT NULL() não existe na cláusula WHERE. NOT NULL é usado em definições de coluna (constraint), não para filtrar linhas. A sintaxe correta seria WHERE <column_name> IS NOT NULL.
Alternativa B — ❌ Incorreta
O operador = não funciona com NULL. Qualquer comparação com NULL usando =, <>, <, > resulta em UNKNOWN, e a linha não é retornada. O correto é IS NULL.
Alternativa C — ❌ Incorreta
Embora <> 0 AND <> '' teste valores vazios ou zero, isso não abrange NULL. Um campo NULL não é igual a 0 nem a string vazia, mas a condição <> 0 não captura NULL, pois a comparação com NULL produz UNKNOWN, e a linha não é incluída no resultado.
Alternativa D — ❌ Incorreta
Não existe função NULL() na SQL padrão para ser usada na cláusula WHERE. A sintaxe é inválida. O correto é WHERE <column_name> IS NULL.
Alternativa E — ✅ Correta
A sintaxe WHERE <column_name> IS NULL é a forma padrão e correta de verificar se um campo é nulo. O operador IS NULL é específico para testar nullidade e funciona com a lógica de três valores, retornando TRUE apenas quando o valor é NULL.
Gabarito: letra E.