J'ai un calque de forme avec un attribut contenant des NULL
valeurs auxquelles j'aimerais appliquer un filtre pour des valeurs différentes de NULL
.
En utilisant l'interface graphique disponible pour une telle construction de requête, on essaierait intuitivement
"obj_art" != NULL
Ce qui signifie "donnez-moi toutes les fonctionnalités avec l'attribut" obj_art "différent de NULL
" (celles-ci comptent certainement plus de 0). Tester cette requête donne un résultat étrange de mon point de vue:
Donc, ce que j'ai appris jusqu'à présent, c'est que je peux y parvenir en utilisant
"obj_art" IS NOT NULL
La question est, quelle est la différence entre != NULL
et IS NOT NULL
?
!=
ne signifie pas «n'est pas»; cela signifie "n'est pas égal à". IS NOT
signifie "n'est pas" donc je pense que c'est parfaitement intuitif :)
NULL
n'est pas une valeur, je dirais qu'il est intuitif d'essayer d'utiliser =
ou !=
que c'est ainsi que vous évaluez toute autre valeur. Ce n'est que lorsque vous savez que ce NULL
n'est pas une valeur qu'il est vraiment intuitif d'utiliser IS NOT
plutôt que !=
. Beaucoup ne savent pas ce qu'est NULL
vraiment un .
NULL
est dans la liste des valeurs (cp. Ci-dessus), et donc traitée comme une valeur «normale». Et il n'y a pas de bouton IS NULL
, ou ai-je raté ça?! Donc, en tapant simplement une telle requête et avec les connaissances, cela NULL
doit être traité d'une manière spéciale, nous pourrions discuter de l'intuition, mais pour shure pas dans le contexte de CET GUI.