Mam warstwę kształtu z atrybutem zawierającym NULL
wartości, do których chciałbym zastosować filtr dla wartości innych niż NULL
.
Korzystając z dostępnych GUI do takiej konstrukcji zapytań, można by intuicyjnie spróbować
"obj_art" != NULL
Co oznacza, że „daj mi wszystkie funkcje z atrybutem„ obj_art ”innym niż NULL
” (te liczą zdecydowanie więcej niż 0). Testowanie tego zapytania daje dziwny wynik z mojego punktu widzenia:
Do tej pory nauczyłem się, że mogę to osiągnąć za pomocą
"obj_art" IS NOT NULL
Pytanie brzmi, jaka jest różnica między != NULL
i IS NOT NULL
?
!=
nie oznacza „nie jest”; oznacza to „nie równa się”. IS NOT
znaczy „nie jest”, więc myślę, że jest to całkowicie intuicyjne :)
NULL
nie jest to wartość, powiedziałbym, że jest intuicyjne w użyciu =
lub !=
w taki sposób oceniasz każdą inną wartość. To nie jest aż wiesz, że NULL
nie jest to wartość, która jest bardzo intuicyjny w obsłudze IS NOT
niż !=
. Wielu nie zdaje sobie sprawy z tego, czym NULL
naprawdę jest.
NULL
znajduje się na liście wartości (patrz powyżej), a zatem jest traktowany jako „normalna” wartość. I nie ma przycisku IS NULL
, a może tak mi brakowało ?! Tak więc, po prostu wpisując takie zapytanie i ze świadomością, NULL
należy to potraktować w specjalny sposób, możemy omówić intuicję, ale dla pewności nie w kontekście TEGO GUI.