Der Grund ist, dass gemäß der SQL-Spezifikation Foo IN(A,B,C)
übersetzt zu ( Foo = A Or Foo = B Or Foo = C )
. Also, wenn wir Foo In(Null, 1, 2)
haben wir erhalten Foo = Null Or Foo = 1 Or Foo = 2
. Da Foo = Null
ist immer UNKNOWN
und zu False
ausgewertet zu Filterzwecken geben Nullen in Ihrem IN-Ausdruck keine Ergebnisse zurück.