Sqlite NOT IN意外行为

时间:2016-06-27 10:06:49

标签: sqlite

我们说我有两张桌子,一列有一列#34; col" 表A的值为A,B,C,D,E的表{。} 表B,其值为H,I,J,K,NULL

现在,当我运行查询SELECT col from A where col NOT IN (SELECT col from B);时,我得到一个空结果 显然,只有当NULL是从内部查询返回的值之一时才会发生这种情况 它背后有逻辑吗?

1 个答案:

答案 0 :(得分:1)

你不能试试吗?

SELECT col from A where col NOT IN (SELECT col from B where col is not null);

通常null具有特定的行为,发生的事情是查询无法将值与null进行比较,因此它忽略了其他结果。通常这必须在数据库选项中进行更改 -