プロが教えるわが家の防犯対策術!

UPDATE文について質問なんですが、
下記のクエリのように条件の違うものを一度に実行させるということは可能なのでしょうか?

UPDATE テーブル名 SET No = '2' WHERE No = '3' ・・・(1)
UPDATE テーブル名 SET No = '3' WHERE No = '2' ・・・(2)

(1)を実行し(2)を実行すると、期待通りの結果がどうしても得られません。
どなたかわかる方がいらっしゃれば、よろしくお願いしますm(__)m

A 回答 (2件)

こんにちは。

maruru01です。

変数の内容を入れ替えるのと同じ要領で、

UPDATE テーブル名 SET No = 'Temp' WHERE No = '3'
UPDATE テーブル名 SET No = '3' WHERE No = '2'
UPDATE テーブル名 SET No = '2' WHERE No = 'Temp'

という感じで行えばいいと思います。
"Temp"はデータ中に絶対に存在しないものを使用して下さい。
    • good
    • 0
この回答へのお礼

なるほど!
クエリもそのような入れ替えで行えばよいのですね。
期待通りの結果を得ることができました。
ありがとうございましたm(__)m

お礼日時:2002/12/02 15:08

こんにちわ。



以下の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');
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す