- ベストアンサー
UPDATEを同時に実行する
UPDATE文について質問なんですが、 下記のクエリのように条件の違うものを一度に実行させるということは可能なのでしょうか? UPDATE テーブル名 SET No = '2' WHERE No = '3' ・・・(1) UPDATE テーブル名 SET No = '3' WHERE No = '2' ・・・(2) (1)を実行し(2)を実行すると、期待通りの結果がどうしても得られません。 どなたかわかる方がいらっしゃれば、よろしくお願いしますm(__)m
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 以下のSQL 文でどうでしょうか? Update テーブル名 set No = 5 - No where No in ('2', '3'); 暗黙のデータ型変換を行わせたくないのであれば、 以下のSQL 文でもOk です。 ※ to_char, to_number 関数は使用しているデータベースによって 異なる可能性があります。 Update テーブル名 set No = to_char(5 - to_number(No)) where No in ('2', '3');
その他の回答 (1)
- maruru01
- ベストアンサー率51% (1179/2272)
回答No.1
こんにちは。maruru01です。 変数の内容を入れ替えるのと同じ要領で、 UPDATE テーブル名 SET No = 'Temp' WHERE No = '3' UPDATE テーブル名 SET No = '3' WHERE No = '2' UPDATE テーブル名 SET No = '2' WHERE No = 'Temp' という感じで行えばいいと思います。 "Temp"はデータ中に絶対に存在しないものを使用して下さい。
お礼
なるほど! クエリもそのような入れ替えで行えばよいのですね。 期待通りの結果を得ることができました。 ありがとうございましたm(__)m