SQL Server,Null值并不是一个值,而是表示特定含义,其所表示的含义是“Unknow”,可以理解为未定义或者未知,因此任何与Null值进行比对的二元操作符结果一定为Null,包括Null值本身。而在SQL Server中,Null值的含义转换为Bool类型的结果为False
Select ‘有值’
Where 3 not in (1,2,NULL)
以上语句执行后未得到预想的值
总结:NOT IN 如果条件中存在NULL的结果会导致结果的不正确,所以不要使用NOT NULL
SQL Server,Null值并不是一个值,而是表示特定含义,其所表示的含义是“Unknow”,可以理解为未定义或者未知,因此任何与Null值进行比对的二元操作符结果一定为Null,包括Null值本身。而在SQL Server中,Null值的含义转换为Bool类型的结果为False
Select ‘有值’
Where 3 not in (1,2,NULL)
以上语句执行后未得到预想的值
总结:NOT IN 如果条件中存在NULL的结果会导致结果的不正确,所以不要使用NOT NULL