使用基于另一列的不同值更新相同列

时间:2014-10-31 16:19:44

标签: sql ms-access

我有这张桌子

Type   Price
A1     900
A2     800
A3     700
A4     600

我想执行更新查询,其中A1,A3和A4的价格上涨5% A2的价格必须增加6.5%

我尝试使用CaseIIF等等。但是我无法弄清楚如何将它放在一个查询中。

2 个答案:

答案 0 :(得分:3)

以下内容应该有效。我

UPDATE <table>
SET PRICE = IIF([TYPE] IN ("A1","A3", "A4"); [Price]*1,05; [Price]*1,065)

答案 1 :(得分:2)

您可以使用switch表达式:

UPDATE my_table
SET    price = price * SWITCH (
                          type IN ('A1', 'A3'), 1.05,
                          type = 'A4', 1.065)
WHERE  type IN ('A1', 'A3', 'A4')