null在SQL中表示“未知”或“不存在”,所以not in会认为null是一个具体的值,需要被排除。


在这个查询中,所有的column列为null值得都会被排除。

select *
from temp
where column not in ('value1', 'value2' null);

如果不希望not in过滤null值,可以使用 not in 结合 or

from temp
where column not in ('value1', 'value2')
or column is null;