MS Access SQL IIF如果为false则返回旧值

时间:2016-11-16 13:01:25

标签: sql ms-access-2010

我有一个问题,我正在进行更新查询并在此过程中使用IIF函数:

Update someTable as tab Set tab.[field1] = "new filed1 value", tab.[field2] = IIF
(
tab[field2] = "some value" , "New value",IIF
(
tab.[field2] = tab.[field2],tab.[field2]))

)) Where tab.[field1] = "Old field 1 value"

使用上面的查询我想将field2更改为“New Value”,如果它等于“某个值”但是如果它没有那么我不想改变它(或者将它放在相同的值上)以上)

所以我的问题是,上面查询中的以下行是否按预期工作?

IIF
    (
    tab.[field2] = tab.[field2],tab.[field2]
)

1 个答案:

答案 0 :(得分:1)

我觉得这个表达太复杂了。这就是你想要的:

Update someTable as tab
    Set tab.[field1] = "new filed1 value",
        tab.[field2] = IIF(tab.[field2] = "some value", tab.[field2])
    Where tab.[field1] = "Old field 1 value";