- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL文の質問です)
SQL文の質問です
このQ&Aのポイント
- 運用上の問題でキー項目が設定されていないDBがあり、その中の「locate」フィールドの値を更新する必要があります。
- データの件数が多く、UPDATE3回実行は処理時間がかかりすぎたため、できれば、SQL1文で処理させたいです。
- 旧の値を一旦別の値にUPDATEし、残り2つをUPDATEし、最初の1つを再度UPDATEする方法をお探しです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
それほど考えすぎなくてもいいと思います。 UPDATE TBLA SET locate= CASE locate WHEN 'LA-01' THEN 'LA-02' WHEN 'LA-02' THEN 'LA-03' WHEN 'LA-03' THEN 'LA-01' END WHERE locate IN ('LA-01','LA-02','LA-03') テーブルスキャンで1レコードにつき1回ずつ置き換え処理が行われるだけです。 一気に実行すれば「LA-01がLA-02に更新されたあと、さらにLA-03に更新されたりしないか」と考える必要はありません。
お礼
なるほど。 実行してみたら、できました。 ありがとうございました。