You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MS Access:IsNull函数为何在查询无记录时未返回预期值?

问题分析与解决方法

问题根源

你当前的查询2写法存在逻辑缺陷:当查询1没有返回任何记录时,FROM [query 1]会导致整个查询2没有结果行,自然无法输出True。IsNull()函数只能判断已有记录中字段值是否为空,但前提是查询1能返回至少一行记录。

解决方案

改用Exists子查询直接判断查询1是否存在记录,这样无论查询1有无结果,查询2都会返回一行预期的布尔值:

SELECT IIf(Exists(SELECT * FROM [query 1]), False, True) AS NullorNot;

或者用Count()统计查询1的主键记录数(主键字段不会为空,统计结果准确):

SELECT IIf(Count([query 1].fieldA) = 0, True, False) AS NullorNot
FROM [query 1];

说明

  • Exists(SELECT * FROM [query 1])会直接检查查询1是否存在记录,存在则返回True,否则返回False,配合IIf()就能得到你预期的结果。
  • 两种写法都能确保查询2始终返回一行结果,不会出现空白字段的情况。

内容的提问来源于stack exchange,提问作者Braide

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 17:01:35