2013-05-15 77 views
0

我試圖比較在表1中的兩列和在同一個表中更新的行1.TSQL列上的比較樣品表和更新行

樣品表

表1與列A,B,C, d

A B C D 
------- 
X 1 X 0 
X 2 X 0 
X 3 Y 0 
Y 4 X 0 

IF的列A和C是不同的,那麼我需要與B列值和更新乘以2 d列中的相同的表。

所需的輸出

A B C D 
------- 
X 1 X 1 
X 2 X 2 
X 3 Y 6 
Y 4 X 8 

一些能幫助一個與這個TSQL查詢嗎?

+0

爲什麼是最後一排的8所希望輸出? A和C都是一樣的。 –

+0

我已經更新了。列A和C對於最後一行是不同的 – user2380911

+0

列'A'和/或'C'是否可以爲空?如果是的話,應該如何處理空值? –

回答

2

試試這個

UPDATE Table1 
SET ColumnD = CASE WHEN ColumnA!=ColumnC THEN ColumnB*2 ELSE ColumnD END 
+0

謝謝它的工作。我試過下面 UPDATE table1的 SET d = CASE當A = C則B ELSE 3 * B END – user2380911

+0

然後標記的任何職位的答案來解決這個線程。 :) –