示例表和更新行的Tsql列比较
我试图比较表1中的两列,并更新同一表1中的行 样本表 表1 A、B、C、D列示例表和更新行的Tsql列比较,tsql,stored-procedures,if-statement,sql-update,Tsql,Stored Procedures,If Statement,Sql Update,我试图比较表1中的两列,并更新同一表1中的行 样本表 表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 如果A列和C列不同,那么我需要将2与B列的值相乘,并在同一个表中的D列中更新 所需输出 A B C D ------- X 1 X 1 X 2 X 2 X 3 Y 6 Y 4 X 8 有人能帮我解决这个问题吗?试试这个 UPDATE Table1 SET ColumnD = CASE WHEN ColumnA!=Co
A B C D
-------
X 1 X 0
X 2 X 0
X 3 Y 0
Y 4 X 0
如果A列和C列不同,那么我需要将2与B列的值相乘,并在同一个表中的D列中更新
所需输出
A B C D
-------
X 1 X 1
X 2 X 2
X 3 Y 6
Y 4 X 8
有人能帮我解决这个问题吗?试试这个
UPDATE Table1
SET ColumnD = CASE WHEN ColumnA!=ColumnC THEN ColumnB*2 ELSE ColumnD END
为什么最后一行的期望输出为8?A和C都是一样的。我现在已经更新了。最后一行的A列和C列不同是
A
列和/或C
列可以为空?如果是这样的话,应该如何处理空值?谢谢,它起作用了。我尝试了下面的更新表1设置D=CASE,当A=C,然后B ELSE 3*B end,然后将帖子中的任何一个标记为答案来解决这个问题