Access中的大小写表达式

您可以case在Access中使用表达式吗?我正在尝试确定最大日期表单2列,但在以下代码中不断出现语法错误:


CASE 

  WHEN dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date]

    THEN dbo_tbl_property.LASTSERVICEDATE 

  ELSE Contour_dates.[Last CP12 Date] 

END AS MaxDate


当年话下
浏览 565回答 3
3回答

猛跑小猪

您可以改用该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计算所有表达式,即使它仅返回其中之一。因此,您应该注意不良副作用。例如,如果对任何表达式求值导致除以零误差,则会发生错误。

子衿沉夜

switch如果要评估的条件更多,则该函数是要使用的更好的函数。与使用嵌套IIF函数相比,它更易于阅读/理解/维护。另外,实现默认值而不是创建基本上计算为“所有先前表达式均为假”的逻辑表达式的另一种方法是仅用true作要评估的最终表达式。例如switch(dbo_tbl_property.LASTSERVICEDATE > Contour_dates.[Last CP12 Date], dbo_tbl_property.LASTSERVICEDATE, true ,Contour_dates.[Last CP12 Date])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL