NULL są trochę dziwne. NULL to nigdy równe wszystko w tym kolejny NULL. Co więcej, każda operacja logiczna na NULL zwraca NULL.
Wyrażenie end IS NOT NULL
oceni false
jeśli end
ma wartość NULL, a true
jeśli end
nie jest NULL.
Wyrażenie NOT( end=NULL)
faktycznie zawsze oceni wartość NULL, ponieważ (end = NULL)
równa się NULL i NOT (NULL)
również równa się NULL. Bardziej konkretnie w klauzuli WHERE, to nigdy oceń true
.