2017-05-09 6 views
0

私は、以下のようなテーブルに何かを持っているテーブル内の複数の列の値を1つのクエリで更新するにはどうすればよいですか?

ID名前メールアドレス性別

と値は、この表に既に存在しています。

今、以下のクエリを使用して年齢を追加しました。

ALTER TABLE tblPersonがint

年齢を追加するさて、私の行構造が

ID名前メールアドレス性別年齢今

のように見える、私は年齢のリストを持っています。新しく作成された列にこれらの年齢を追加するクエリ?

すべての年齢はIDでソートされています。したがって、IFロジックは必要ありません。列データを追加するだけです。

ありがとうございました。

答えて

0

idを持つ一時テーブルに値を格納します。そして、joinを使用します。

update t join 
     idages ia 
     on t.id = io.id 
    set t.age = ia.age; 

また、巨大なcase表現でこれを行うことができますが、それはエラーを起こしやすいです。

update t 
    set t.age = (case when id = id1 then age1 
         when id = id2 then age2 
         when id = id3 then age3 
         . . . 
       end) 
    where t.age in (id1, id2, id3, . . .); 
関連する問題