3 回答
TA贡献1858条经验 获得超8个赞
您可以改用该IIF()函数。
IIF(condition, valueiftrue, valueiffalse)
condition 是您要测试的值。
valueiftrue 是在条件评估为TRUE时返回的值。
valueiffalse 是在条件评估为FALSE时返回的值。
Switch当您有多个条件要测试时,还有一个易于使用和理解的功能:
Switch( expr-1, value-1 [, expr-2, value-2 ] … [, expr-n, value-n ] )
开关函数参数列表由成对的表达式和值组成。从左到右对表达式进行求值,并返回与第一个要求值为True的表达式相关联的值。如果零件未正确配对,则会发生运行时错误。例如,如果expr-1为True,则Switch返回value-1。如果expr-1为False,但expr-2为True,则Switch返回value-2,依此类推。
在以下情况下,Switch返回Null值:
这些表达式都不是真的。
第一个True表达式的对应值为Null。
注意:Switch计算所有表达式,即使它仅返回其中之一。因此,您应该注意不良副作用。例如,如果对任何表达式求值导致除以零误差,则会发生错误。
TA贡献1828条经验 获得超3个赞
switch
如果要评估的条件更多,则该函数是要使用的更好的函数。与使用嵌套IIF
函数相比,它更易于阅读/理解/维护。另外,实现默认值而不是创建基本上计算为“所有先前表达式均为假”的逻辑表达式的另一种方法是仅用true
作要评估的最终表达式。例如switch(dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date], dbo_tbl_property.LASTSERVICEDATE, true ,Contour_dates.[Last CP12 Date])
添加回答
举报