【问题标题】:IIF statement with multiple conditions具有多个条件的 IIF 语句
【发布时间】:2018-08-14 16:33:42
【问题描述】:

同意:

IIf([consents].[decision]=1,"grant",
    IIf([consents].[allowbreaktheglass]=0,"deny""Default"),
    IIf([consents].[AllowBreakTheGlass]=1 AND [consents].[Decision]=0,"emergency only"))

IIF 语句返回错误:

您输入的表达式的函数包含错误数量的参数

同意标准仅限于“授予”、“拒绝”和“紧急情况”。

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    IIF 语句的语法是:IIf ( expr , truepart , falsepart ) 您在以下 2 中缺少 falsepart

    尝试更改:IIf([consents].[allowbreaktheglass]=0,"deny""Default")

    收件人:IIf([consents].[allowbreaktheglass]=0,"deny","Default")

    和:IIf([consents].[AllowBreakTheGlass]=1 AND [consents].[Decision]=0,"emergency only")

    收件人:IIf([consents].[AllowBreakTheGlass]=1 AND [consents].[Decision]=0,"emergency only","")

    欲了解更多信息,请访问:https://support.office.com/en-us/article/iif-function-32436ecf-c629-48a3-9900-647539c764e3

    【讨论】:

      【解决方案2】:

      您不是 100% 清楚您要使用 Nested IIF statement 完成什么,但是您只是缺少一个失败参数,以下可能是您想要的:

      添加了“错误?”对于最后一个失败参数,以及将“默认”移动到第一个子句的失败中。

      Consent: 
          IIF([consents].[decision] = 1, 'grant',
              IIF([consents].[allowbreaktheglass] = 0, 'deny',
                  IIF([consents].[AllowBreakTheGlass] = 1 AND [consents].[Decision] = 0,
                      'emergency only', 'Error?')) 'Default')
      

      【讨论】:

        【解决方案3】:

        看看您是否发现Switch 比嵌套的IIf 语句更容易。

        在 Access 查询设计器中打开一个新查询,切换到 SQL 视图,然后粘贴到此语句中...

        SELECT
            Switch(
                    c.[decision]=1, 'grant',
                    c.[allowbreaktheglass]=0, 'deny',
                    c.[AllowBreakTheGlass]=1 AND c.[Decision]=0, 'emergency only',
                    True, 'Default'
                  ) AS Consent
        FROM consents AS c;
        

        Switch 对表达式/值对进行操作。它返回表达式计算结果为 True 的第一对的值,并忽略其余的对,无论它们是否为 True。

        不确定我是否理解您想要的逻辑,但如果[decision]=1,第一对将返回'grant'。如果不是,它将检查下一对。等等。最后一对以True 作为其表达式,因此当前3 对都不匹配时,该函数将返回'Default'

        【讨论】:

          猜你喜欢
          • 2021-12-19
          • 1970-01-01
          • 2019-02-08
          • 1970-01-01
          • 2014-10-20
          • 2016-02-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多