8

我试图在 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。

提前致谢!

4

3 回答 3

10

现在我想知道如何插入 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

参考

于 2011-03-18T09:17:33.480 回答
1

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

IIf(power.gain_type='D', 
    power.gain_max+2.15,
    power.gain_max)
于 2011-03-18T09:17:24.977 回答
0

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

在此处输入图像描述

于 2011-03-18T09:26:25.540 回答