2

所有,我在一个表中有四列(A INTB INT和)。我想将列中的值移动到或基于. 因此,如果我想将值移动到. 我怎样才能做到这一点?C INTD VARCHAR(1)TableNameCABDD = 'A'CA

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

笔记。我明白以上是疯狂的,但我试图尽可能清楚地表达这个问题。我也竭尽全力寻找答案。我对 SQL 并不陌生,但这个让我很难过。任何帮助一如既往,非常感谢。

4

1 回答 1

6

这里,

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

在这种情况下,只有 1 列将被更改,因为D一次只有一个值。

于 2012-11-16T17:15:17.073 回答