在 where 语句中无效使用 null;没有空值

Invalid use of null in where statement; no null values

我有以下问题:

我正在使用两个查询来解析导入的数据,它们都在选择数据 导入的数据集非常复杂,但这会重现错误。

查询A:

SELECT CDbl(FieldA) As DblA, Imported.* From Imported WHERE FieldA IS NOT NULL

查询B:

SELECT * FROM QueryA WHERE DblA > 7 AND DblA < 600

QueryA 运行没问题,QueryB 抛出无效使用 null 错误

如果我将 QueryA 的结果插入到 table 和 运行 QueryB 中,我不会收到错误,但是,这是不需要的。

如果我从 QueryB 中删除 WHERE 它 运行 没问题。

是否有其他解决方法?或者我应该只接受多余的 table?

试试这个查询。

SELECT * FROM QueryA WHERE DblA > 7 AND DblA < 600 AND Dbla IS NOT NULL

啊,修好了,还是不知道为什么。

已更改查询 A

SELECT CDbl(Nz(FieldA, 999)) As DblA, Imported.* From Imported WHERE FieldA IS NOT NULL AND Nz(FieldA, 999) <> 999

就我的 SQL 知识而言,这应该没有任何区别,但确实如此。如果有人能解释一下,我将不胜感激。

999 而不是 0 是因为否则我会在其他函数中得到除以 0 的错误(而实际上 Access 不应该是 运行 任何函数,因为它是过滤掉)。