Důvodem je, že podle specifikace SQL Foo IN(A,B,C)
překládá do ( Foo = A Or Foo = B Or Foo = C )
. Pokud tedy máme Foo In(Null, 1, 2)
dostaneme Foo = Null Or Foo = 1 Or Foo = 2
. Protože Foo = Null
je vždy UNKNOWN
a vyhodnoceno jako False
pro účely filtrování nevrátí hodnoty Null ve vašem výrazu IN žádné výsledky.