基于字段值更新COLUMN

Moo*_*ght 2 sql t-sql sql-server sql-server-2008-r2

好,我有四列(A INT,B INT,C INTD VARCHAR(1)在表中)TableName.我想将值从列移动C到任一个AB基于值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的新手,但这个让我难过.任何帮助都是一如既往,非常感谢.

Joh*_*Woo 6

这里,

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只有一个值.