我有以下问题:
我正在使用两个查询来解析导入的数据,它们都在选择数据导入的数据集非常复杂,但这会重现错误。
QueryA:
SELECT CDbl(FieldA) As DblA, Imported.* From Imported WHERE FieldA IS NOT NULL
QueryB:
SELECT * FROM QueryA WHERE DblA > 7 AND DblA < 600
QueryA运行正常,QueryB引发无效使用null错误
如果我将QueryA的结果插入表中并对该表运行QueryB,则不会收到该错误,但这是不希望的。
如果我WHERE从QueryB中删除,它将运行良好。
WHERE
有其他解决方法吗?还是我应该只接受冗余表?
嗯,修好了,还是不知道为什么。
更改查询
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不应使用它运行任何函数,因为它已被滤除)。
999
0