Sql 具有多个条件的IIF语句
同意:Sql 具有多个条件的IIF语句,sql,ms-access,Sql,Ms Access,同意: IIf([consents].[decision]=1,"grant", IIf([consents].[allowbreaktheglass]=0,"deny""Default"), IIf([consents].[AllowBreakTheGlass]=1 AND [consents].[Decision]=0,"emergency only")) IIF语句返回错误: 您输入的表达式有一个包含错误参数数的函数 同意的标准仅为批准、拒绝和紧急情况 IIF语句的语法是
IIf([consents].[decision]=1,"grant",
IIf([consents].[allowbreaktheglass]=0,"deny""Default"),
IIf([consents].[AllowBreakTheGlass]=1 AND [consents].[Decision]=0,"emergency only"))
IIF
语句返回错误:
您输入的表达式有一个包含错误参数数的函数
同意的标准仅为批准、拒绝和紧急情况 IIF语句的语法是:
IIF(expr、truepart、falsepart)
您在以下2中缺少falsepart
:
尝试更改:IIf([approves].[allowbreaktheglass]=0,“deny”“Default”)
收件人:IIf([approves].[allowbreaktheglass]=0,“拒绝”,“默认”)
和:IIf([同意][允许破裂玻璃]=1和[同意][决定]=0,“仅限紧急情况”)
致:IIf([approvements].[AllowBreakTheGlass]=1和[approvements].[Decision]=0,“仅限紧急情况”)
欲了解更多信息,请访问:并不100%清楚您的
嵌套IIF语句想要实现什么,但是您只是缺少一个失败参数,以下可能是您想要的:
为最后一个失败参数添加了“Error”,并将“Default”移到第一个子句的失败中
Consent:
IIF([consents].[decision] = 1, 'grant',
IIF([consents].[allowbreaktheglass] = 0, 'deny',
IIF([consents].[AllowBreakTheGlass] = 1 AND [consents].[Decision] = 0,
'emergency only', 'Error?')) 'Default')
查看是否发现Switch
比嵌套的IIf
语句更容易
在Access查询设计器中打开新查询,切换到SQL视图,然后粘贴到此语句
选择
开关(
c、 [决定]=1,“授予”,
c、 [allowbreaktheglass]=0,“拒绝”,
c、 [AllowBreakTheGlass]=1和[Decision]=0,“仅限紧急情况”,
正确,“默认”
)作为同意
作为c的同意书;
开关
对表达式/值对进行操作。它返回表达式计算结果为True的第一对的值,并忽略其余对,不管它们是否为True
不确定我是否理解了您想要的逻辑,但如果[decision]=1,第一对将返回'grant'
。如果没有,它将检查下一对。等等最后一对具有True
作为其表达式,因此当前3对中没有一对匹配时,函数将返回“默认值”