Il motivo è che secondo la specifica SQL, Foo IN(A,B,C)
si traduce in ( Foo = A Or Foo = B Or Foo = C )
. Quindi, se abbiamo Foo In(Null, 1, 2)
otteniamo Foo = Null Or Foo = 1 Or Foo = 2
. Poiché Foo = Null
è sempre UNKNOWN
e valutato in False
ai fini del filtraggio, i valori Null nell'espressione IN non restituiranno risultati.