Eu tenho uma camada de forma com um atributo que contém NULL
valores aos quais gostaria de aplicar um filtro para valores diferentes NULL
.
Usando a GUI disponível para essa construção de consulta, tentaria-se intuitivamente
"obj_art" != NULL
O que significa 'dê-me todos os recursos com o atributo "obj_art" diferente de NULL
' (estes contam definitivamente mais que 0). Testar esta consulta fornece um resultado estranho do meu ponto de vista:
Então, o que eu aprendi até agora é que posso conseguir isso usando
"obj_art" IS NOT NULL
A questão é: qual é a diferença entre != NULL
e IS NOT NULL
?
!=
não significa "não é"; significa "não é igual a". IS NOT
significa "não é", então eu acho que isso é perfeitamente intuitiva :)
NULL
não é um valor, eu diria que é intuitivo tentar usar =
ou !=
como é assim que você avalia qualquer outro valor. Não é até que você sabe que NULL
não é um valor que é muito intuitivo de usar IS NOT
, em vez de !=
. Muitos não têm consciência do que NULL
realmente é.
NULL
está na lista de valores (cp. Acima) e, portanto, é tratada como um valor 'normal'. E não há botão IS NULL
, ou eu senti falta disso ?! Portanto, ao digitar essa consulta e com o conhecimento, isso NULL
deve ser tratado de uma maneira especial, poderíamos discutir sobre a intuição, mas, sem dúvida, não no contexto desta ESTA GUI.