小编典典

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

sql

我有以下问题:

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

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中删除,它将运行良好。

有其他解决方法吗?还是我应该只接受冗余表?


阅读 178

收藏
2021-04-15

共1个答案

小编典典

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

更改查询

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不应使用它运行任何函数,因为它已被滤除)。

2021-04-15