MS Access SQL IIF 如果为假则 return 旧值
MS Access SQL IIF if false then return old value
我有一个问题,我正在执行更新查询并在此过程中使用 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"
对于上面的查询,如果它等于 "some value",我想将 field2 更改为 "New Value",但如果不等于,那么我不想更改它(或输入相同的值就像上面一样)
所以我的问题是上面查询中的下面一行是否会按预期工作?
IIF
(
tab.[field2] = tab.[field2],tab.[field2]
)
我觉得这个表达太复杂了。这就是你想要的:
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";
我有一个问题,我正在执行更新查询并在此过程中使用 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"
对于上面的查询,如果它等于 "some value",我想将 field2 更改为 "New Value",但如果不等于,那么我不想更改它(或输入相同的值就像上面一样)
所以我的问题是上面查询中的下面一行是否会按预期工作?
IIF
(
tab.[field2] = tab.[field2],tab.[field2]
)
我觉得这个表达太复杂了。这就是你想要的:
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";