На няколко езика NULL се обработва по различен начин:Повечето хора знаят за логиката с две стойности, където true
и false
са единствените сравними стойности в булеви изрази (even is false се дефинира като 0 и true като всичко друго).
В стандартния SQL трябва да мислите за тризначна логика. NULL не се третира като реална стойност, по-скоро бихте могли да го наречете "неизвестна". Така че, ако стойността е неизвестна, не е ясно дали във вашия случай state
е 0, 1 или нещо друго. Така че NULL != 1
резултати до NULL
отново.
Това заключава, че където и да филтрирате нещо, което може да е NULL, трябва да третирате NULL стойности сами. Имайте предвид, че синтаксисът също е различен:стойностите NULL могат да се сравняват само с x IS NULL
вместо x = NULL
. Вижте Уикипедия за таблица на истинността, показваща резултатите от логически операции.