その理由は、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
に評価されます フィルタリングの目的で、IN式のNullは結果を返しません。
その理由は、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
に評価されます フィルタリングの目的で、IN式のNullは結果を返しません。