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 .