Eu tenho uma camada de forma com um atributo que contém NULLvalores 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 != NULLe IS NOT NULL?
!=não significa "não é"; significa "não é igual a". IS NOTsignifica "não é", então eu acho que isso é perfeitamente intuitiva :)
NULLnã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 NULLnão é um valor que é muito intuitivo de usar IS NOT, em vez de !=. Muitos não têm consciência do que NULLrealmente é.
NULLestá 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 NULLdeve ser tratado de uma maneira especial, poderíamos discutir sobre a intuição, mas, sem dúvida, não no contexto desta ESTA GUI.


