基于字段值更新COLUMN

时间:2012-11-16 17:11:36

标签: sql sql-server tsql sql-server-2008-r2

全部,我在表A INT中有四列(B INTC INTD VARCHAR(1)TableName)。我想根据C中的值将值从A列移动到BD。因此,如果D = 'A'我想将C中的值移至A。我怎样才能做到这一点?

DECLARE @Column COLUMN;
UPDATE TableName 
SET (@Column = 
    (CASE 
        WHEN D = 'A' THEN A 
        WHEN D = 'B' THEN B
     END)) = C;

注意。我理解上面是疯狂的,但我试图尽可能清楚地表达问题。我也用尽了我的搜索答案。我不是SQL的新手,但这个让我难过。任何帮助都是一如既往的,非常感谢。

1 个答案:

答案 0 :(得分:6)

下面,

UPDATE TableName
SET A = (CASE WHEN D = 'A' THEN C ELSE A END),
    B = (CASE WHEN D = 'B' THEN C ELSE B END)

在这种情况下,由于D一次只有一个值,因此只会更改1列。