2016-01-30 11 views
5

誤って間違ったデータをテーブル行に挿入しましたが、データを交換したいと思います。女性の代わりに男性 、男性に女性の代わりに男性。SQL Serverのテーブル内の行の間の値を交換するクエリを作成しますか?

UPDATE myTable 
SET 
col1 = CASE WHEN col1 = 'male' THEN 'female' ELSE 'male' END, 
col2 = CASE WHEN col2 = 'female' THEN 'male' ELSE 'female' END 

結果:行の値がスワップになります

enter image description here

+0

アップデートカスタマー セットの性別「を 『「し、 'マーレ エンド –

+0

またはお客様 セットの性別を更新= ケース 場合は性別=」男性女性』 エルス 『男性』 エンド –

+0

どのように同じテーブルを使用して達成するために? –

答えて

7

シンプルなアップデートが動作する - 以下の

enter image description here

は、私が期待してい正しいデータです。

私はあなたのために働くことを願っています。

あなたが使用することができ
+0

ありがとうございますPiyush、それは私がすでに行っている。私はTemp変数を使って答えを期待しています。 –

+0

一時変数を使用することもできますが、複雑さが増し、このリンクを参照することができるため、これは良い方法ではありません。http://www.mindfiresolutions.com/How-to-swap-data-between-columns-in-SQL -Server-874.php –

2

UPDATE table_name 
SET Gender = CASE Gender 
        WHEN 'Male' THEN 'Female' 
        WHEN 'Female' THEN 'Male' 
        ELSE Gender 
      END; 

LiveDemo

N/AまたはNULLなどのmale/female以外の値が同じままになりますのでご注意ください。


あなただけ指定した名前が使用のためにそれをしたい場合:= ケース 性別=「男性」を「女性」 性別= '女性

UPDATE table_name 
SET Gender = CASE 
       WHEN Name IN ('Geetha', 'Radha') THEN 'Female' 
       WHEN Name IN ('Ram', 'Syam', 'Ravi') THEN 'Male' 
      END 
WHERE Name IN ('Ram', 'Syam', 'Geetha', 'Radha', 'Ravi'); 
+0

Temp変数を使用して返信してください。ありがとう –

関連する問題