MS Access SQL。我正在使用SWITCH执行一条Update SQL语句。
Update Insurance Set [SellPrice]=SWITCH
([Cover]=50, 4.2,
[Cover]=100, 5.4,
[Cover]=200, 6.8)语句中的3个字段被正确更新,但它为所有其他条目清空了SellPrice列。该语句将更新所有行,而不仅仅是我标识的3行。
发布于 2019-02-28 18:01:36
这是通常的行为。update查询始终影响所有行,如果所有条件都不满足,则switch语句将返回Null。
您应该过滤希望受影响的行:
Update Insurance Set [SellPrice]=SWITCH
([Cover]=50, 4.2,
[Cover]=100, 5.4,
[Cover]=200, 6.8)
WHERE Cover IN (50,100,200)或者,如果不满足任何条件,也可以让SWITCH语句返回当前值:
Update Insurance Set [SellPrice]=SWITCH
([Cover]=50, 4.2,
[Cover]=100, 5.4,
[Cover]=200, 6.8,
True, SellPrice)然而,这可能会有更差的性能,并导致更多的锁。
https://stackoverflow.com/questions/54922917
复制相似问题