在Access中,是否需要IIf函数的"falsepart"?

In Access, is the "falsepart" of the IIf Function required?

在将一些 Access 查询转换为 T-SQL 时,我遇到了 Access 函数 IIf。我阅读了文档 here 并了解到它需要 3 个参数:表达式、if true 和 if false。我还没有发现是否需要“假”参数?如果没有提供 false,行为是什么?

更新: 当有人问这个问题时,我 不知道 查询是否仅使用 2 个参数(b/c 我不能 运行 Access 中的查询)。然而,我做了,怀疑它可能工作(只有 2 个参数)b/c 我正在转换的一些查询(到 T- SQL) 嵌套了 IIF,最后一个 IIF 只有 2 个参数。

IIf,不是IFF。 VBA 和文本框表达式中的所有参数都是必需的,并且两者都必须是可计算的(没有错误结果,例如 DivBy0),因为这两个部分都将被计算——如果任何一个出错,整个表达式都会出错。 Access 查询中的 IIf() 的工作方式不同 - 'falsepart' 仅在 'truepart' 失败时计算,如果未提供 'falsepart',表达式 returns Null 如果 'truepart' 失败。

尝试一些表达式,看看会发生什么。一个用于测试:IIf(1=2,"T").

是的,它是必需的,它实际上就像一个 if else 语句。

即如果条件满足则发生一个动作,如果条件不满足则发生另一个动作

June7 的精彩回答补遗:

这里有两个在 Access 中有效的简单查询 SQL:

SELECT IIf(1=1, "yes")

(returns“是”)

SELECT IsNull(IIf(1=2, "yes"))

(returns -1 aka True) - 所以如果你省略 falsepart, IIf() returns 如果 expr 不计算为 NULL没错。