为什么sql里面not in后面的子查询如果有记录为NULL的,主查询就查不到记录

时间:2022-05-23 07:24:43

为什么sql里面not in后面的子查询如果有记录为NULL的,主查询就查不到记录???原因很简单:
SELECT *
FROM dbo.TableA AS a
WHERE a.id NOT IN ( 2, NULL )

–等同于:
SELECT *
FROM Table_A AS a
WHERE a.id <> 2
AND a.ID <> NULL

由于NULL值不能参与比较运算符,导致条件不成立,查询不出来数据。

转载:https://blog.csdn.net/coder_ocean/article/details/52281412