Tengo una capa de forma con un atributo que contiene NULL
a los que quiero aplicar un filtro para valores diferentes de NULL
.
Utilizando la interfaz gráfica de usuario disponible para la construcción de este tipo de consultas, uno intentaría intuitivamente
"obj_art" != NULL
Lo que significa _'dame todas las características con atributo "obj_art"
diferente de NULL
'_ (estos cuentan definitivamente más que 0). Probar esta consulta ofrece un resultado extraño desde mi punto de vista:
Así que lo que he aprendido hasta ahora es que puedo lograr esto mediante el uso de
"obj_art" IS NOT NULL
La pregunta es, ¿cuál es la diferencia entre != NULL
y IS NOT NULL
?
0 votos
Por lo que sé, es sólo sintaxis. Cuando es null usa is o is not. Si no, usa = o !=
0 votos
"uno lo intentaría intuitivamente" ¿De verdad? ¿Por qué? NULL no es un valor. Es literalmente la ausencia de un valor. No se puede "igualar" a NULL. El operador
!=
no significa "no es", sino "no es igual a".IS NOT
significa "no es", así que creo que es perfectamente intuitivo :)0 votos
@LightnessRacesinOrbit Sin la comprensión de que
NULL
no es un valor yo diría que es intuitivo para intentar utilizar=
o!=
ya que así es como se evalúa cualquier otro valor. No es hasta queNULL
no es un valor que sea realmente intuitivo de usarIS NOT
en lugar de!=
. Muchos no saben lo que es unNULL
realmente lo es.0 votos
Y además, en la GUI
NULL
está en la lista de valores (cp. arriba), y por lo tanto se trata como un valor "normal". Y no hay ningún botónIS NULL
¡¿O me lo he perdido?! Por lo tanto, cuando acaba de escribir tal consulta y con el conocimiento, queNULL
debe tratarse de una manera especial que podríamos discutir sobre la intuición, pero seguro que no en el contexto de ESTA GUI.0 votos
@Midavalo: Si bien eso es cierto, humildemente sugeriría no usar una característica del lenguaje sin buscar qué es :) Programar adivinando no funciona.
0 votos
Hay que reconocer que la interfaz gráfica parece engañosa.