Postgresql 不在的博士后无法按预期工作

Postgresql 不在的博士后无法按预期工作,postgresql,Postgresql,我正在尝试在查询中添加以下条件以筛选数据 SELECT * FROM dump WHERE letpos NOT IN ('0', '(!)','NA','N/A') ; 我只需要id为1、2、3和6的记录。但是查询不返回IDS3和ID6。我只得到1,2 表: 身份证件 名称 莱普斯 号码 1. AAA A. 60 2. BBB B 3. CCC 50 4. DDD 0 5. EEE (!) 70 6. FFF 70 在id=3的行中,letpos的值是(我怀疑)NULL,因此WHERE子句

我正在尝试在查询中添加以下条件以筛选数据

SELECT * 
FROM dump
WHERE letpos NOT IN ('0', '(!)','NA','N/A') ;
我只需要id为1、2、3和6的记录。但是查询不返回IDS3和ID6。我只得到1,2

表:

身份证件 名称 莱普斯 号码 1. AAA A. 60 2. BBB B 3. CCC 50 4. DDD 0 5. EEE (!) 70 6. FFF 70
id=3
的行中,
letpos
的值是(我怀疑)
NULL
,因此
WHERE
子句中的布尔表达式是:

WHERE NULL NOT IN ('0', '(!)','NA','N/A');
NULL
IN
NOT IN
=
等运算符进行比较时,总是返回
NULL
,并且永远不会
为TRUE

因此,您不会在结果中看到这一行。

检查
WHERE
子句中的
NULL

SELECT * 
FROM dump 
WHERE letpos IS NULL
   OR letpos NOT IN ('0', '(!)', 'NA', 'N/A');