我有一个问题,我正在进行更新查询并在此过程中使用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]
)
答案 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";