Anledningen är att enligt SQL-specifikationen, Foo IN(A,B,C)
översätts till ( Foo = A Or Foo = B Or Foo = C )
. Alltså, om vi har Foo In(Null, 1, 2)
vi får Foo = Null Or Foo = 1 Or Foo = 2
. Eftersom Foo = Null
är alltid UNKNOWN
och utvärderas till False
för filtreringsändamål kommer nollor i ditt IN-uttryck inte att ge några resultat.