I NULL sono un po' strani. Un NULL è mai uguale a qualsiasi cosa incluso un altro NULL. Inoltre, qualsiasi operazione booleana su un NULL restituisce NULL.
L'espressione end IS NOT NULL
valuterà false
se end
è NULL e true
se end
non è NULL.
L'espressione NOT( end=NULL)
in realtà valuterà sempre NULL perché (end = NULL)
è uguale a NULL e NOT (NULL)
è anche uguale a NULL. Più precisamente in una clausola WHERE, mai valuta true
.