2014-10-31 246 views
1

我有這個表更新同一列基於另一列

Type Price 
A1  900 
A2  800 
A3  700 
A4  600 

我想執行一個更新查詢,其中的A1,A3和A4的價格提高5% 爲A2的價格必須增加了6,5%

我試圖使用CaseIIF等等。但我無法弄清楚我怎麼能把這個在一個查詢中。

+0

爲什麼是 'A2' 的處理不同?如果你是硬編碼,只需使用where子句。 'SET Price = price +(price * .05)其中'type <>'A2''等 – Andrew 2014-10-31 16:24:23

回答

3

像下面這樣的東西應該工作。我

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

替換爲「;」與「,」和「,」和「。」如果您不使用德語語言環境:'UPDATE

SET PRICE = IIF([TYPE] IN(「A1」,「A3」,「A4」),[Price] * 1.05,[Price] * 1.065)' – 2014-10-31 16:28:13

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')