2

すべて、テーブルに 4 つの列 ( A INTB INTC INTおよびD VARCHAR(1)) がありますTableName。の値に基づいて、列の値をまたはのCいずれかに移動したいと考えています。したがって、値をに移動したい場合。どうすればこれを達成できますか?ABDD = '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)

Dこの場合、一度に 1 つの値しかないため、1 つの列のみが変更されます。

于 2012-11-16T17:15:17.073 に答える