Moo*_*ght 2 sql t-sql sql-server sql-server-2008-r2
好,我有四列(A INT,B INT,C INT并D VARCHAR(1)在表中)TableName.我想将值从列移动C到任一个A或B基于值D.所以如果D = 'A'我想将值C移到A.我怎样才能做到这一点?
DECLARE @Column COLUMN;
UPDATE TableName
SET (@Column =
(CASE
WHEN D = 'A' THEN A
WHEN D = 'B' THEN B
END)) = C;
Run Code Online (Sandbox Code Playgroud)
注意.我理解上面是疯狂的,但我试图尽可能清楚地表达问题.我也用尽了我的搜索答案.我不是SQL的新手,但这个让我难过.任何帮助都是一如既往,非常感谢.
这里,
UPDATE TableName
SET A = (CASE WHEN D = 'A' THEN C ELSE A END),
B = (CASE WHEN D = 'B' THEN C ELSE B END)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,只有一列会被更改,因为一次D只有一个值.