在 Access 的 IIf 函数中,如何分配空值?
In an IIf function in Access, how do I assign null values?
我正在 MS Access 的查询中创建计算字段 (Field3)。在此示例中,Field2 包含数字值和字符值。我希望 Field3 仅包含来自 Field2 的数值并将所有字符值转换为 Null 值,以便我稍后可以将 Field3 作为数字字段执行计算。这是在 IIf 函数中,因为如果 Field1 = "AA",我希望 Field3 仅包含来自 Field2 的值。这是我尝试在查询设计视图的字段行中键入的内容:
Field3: IIf([Field1]="AA",[Field2]*1,NULL)
除非 Field2 是一个字符值,否则 Field3 读取“#Error”而不是空白。
如果不满足 IIf 条件,分配 NULL 值的正确语法是什么?
Null
是正确的语法。
但至少在我这台机器上的旧德语 Access 版本中,我需要在查询设计视图中使用分号而不是逗号。
那你可以试试这个吗?
Field3: IIf([Field1]="AA";[Field2]*1;NULL)
在SQL视图中,语法与你的问题完全一样:
SELECT IIf([Field1]="aa",[Field2]*1,Null) AS Field3
FROM TestTable;
如果您希望表达式 return [Field2]*1
仅当 [Field1]="AA" 且 [Field2] 包含数字时,否则 return Null,请使用IsNumeric()
在条件...
IIf([Field1]='AA' And IsNumeric([Field2]), [Field2]*1, Null)
如果 [Field2]*1
的目的是将 [Field2]
文本值转换为数字,请考虑使用 Val() 函数...
IIf([Field1]='AA' And IsNumeric([Field2]), Val([Field2]), Null)
我正在 MS Access 的查询中创建计算字段 (Field3)。在此示例中,Field2 包含数字值和字符值。我希望 Field3 仅包含来自 Field2 的数值并将所有字符值转换为 Null 值,以便我稍后可以将 Field3 作为数字字段执行计算。这是在 IIf 函数中,因为如果 Field1 = "AA",我希望 Field3 仅包含来自 Field2 的值。这是我尝试在查询设计视图的字段行中键入的内容:
Field3: IIf([Field1]="AA",[Field2]*1,NULL)
除非 Field2 是一个字符值,否则 Field3 读取“#Error”而不是空白。
如果不满足 IIf 条件,分配 NULL 值的正确语法是什么?
Null
是正确的语法。
但至少在我这台机器上的旧德语 Access 版本中,我需要在查询设计视图中使用分号而不是逗号。
那你可以试试这个吗?
Field3: IIf([Field1]="AA";[Field2]*1;NULL)
在SQL视图中,语法与你的问题完全一样:
SELECT IIf([Field1]="aa",[Field2]*1,Null) AS Field3
FROM TestTable;
如果您希望表达式 return [Field2]*1
仅当 [Field1]="AA" 且 [Field2] 包含数字时,否则 return Null,请使用IsNumeric()
在条件...
IIf([Field1]='AA' And IsNumeric([Field2]), [Field2]*1, Null)
如果 [Field2]*1
的目的是将 [Field2]
文本值转换为数字,请考虑使用 Val() 函数...
IIf([Field1]='AA' And IsNumeric([Field2]), Val([Field2]), Null)