Причината е, че според спецификацията на SQL, Foo IN(A,B,C)
превежда се на ( Foo = A Or Foo = B Or Foo = C )
. По този начин, ако имаме Foo In(Null, 1, 2)
получаваме Foo = Null Or Foo = 1 Or Foo = 2
. Тъй като Foo = Null
винаги е UNKNOWN
и се оценява на False
за целите на филтрирането, Nulls във вашия IN израз няма да върне резултати.