我有一个名为NUMS的表,其中包含一列n.
我在其中填充值1,2,3,4,5,null.
我在其中填充值1,2,3,4,5,null.
现在一个查询
SELECT n FROM Nums WHERE n IN (1,null)
在这种情况下,我猜它已转换为
SELECT n FROM Nums Where n = 1 OR n = 2 OR n = null
我也将n与一个null值进行比较,该值应该产生未知,它应该返回一个空集.但它返回1,2(null不返回,尽管包含在IN运算符中)
现在一个查询
SELECT n FROM Nums WHERE n NOT IN(1,null)
…转换为:
SELECT n FROM Nums Where n!=1 AND n!=2 AND n!=null
这里我上面所说的工作,并没有返回任何东西.
任何人都可以详细解释发生了什么.