【问题标题】:SQL: IF statement Access 2010SQL: IF 语句 Access 2010
【发布时间】:2011-07-18 00:36:38
【问题描述】:

我试图在 Access 2010 中编写查询。我有一个表:

表名是power。我正在尝试编写 IF 语句:

Select IIf(power.gain_type = 'D', power.gain_max + 2.15)

如果 gain_type 等于 D,则 gain_max 和 2.15

例如:

14.8 + 2.15 = 16.95。

提前致谢!

【问题讨论】:

    标签: sql if-statement ms-access-2010


    【解决方案1】:

    现在我想知道如何插入 ELSEIF 语句。 "IF (gain_type='D'){gain_max+2.15} ELSEIF (gain_type='I'){gain_max-2.15} ELSE {gain_max}

    您可以使用 SWITCH

    Select power.gain_max + Switch(power.gain_type='D', 2.15,
                                   power.gain_type='I', -2.15,
                                   true, 0)
    from power
    

    或嵌套/链接 IIF

    Select power.gain_max + IIf(power.gain_type='D', 2.15,
                            IIf(power.gain_type='I', -2.15, 0))
    from power
    

    原创

    这是选择

    Select IIf(power.gain_type='D', power.gain_max+2.15, power.gain_max)
    from power
    

    您要更新吗?

    update power
    set gain_max = gain_max+2.15
    where gain_type='D'
    

    您还可以在 Access 中使用 TRUE = -1 的事实

    Select power.gain_max-2.15*(power.gain_type='D')
    from power
    

    参考文献

    【讨论】:

    • 现在我想知道如何插入 ELSEIF 语句。 "IF (gain_type='D'){gain_max+2.15} ELSEIF (gain_type='I'){gain_max-2.15} ELSE {gain_max}。
    【解决方案2】:

    语法是iif(condition, value_if_true, value_if_false)。如果你添加第三个参数,你应该没问题:

    IIf(power.gain_type='D', 
        power.gain_max+2.15,
        power.gain_max)
    

    【讨论】:

      【解决方案3】:

      结果:IIf([gain_type]="D",[gain_max]+2.15,[gain_max])

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-04-27
        • 2014-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多