• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:SQL文の質問です)

SQL文の質問です

このQ&Aのポイント
  • 運用上の問題でキー項目が設定されていないDBがあり、その中の「locate」フィールドの値を更新する必要があります。
  • データの件数が多く、UPDATE3回実行は処理時間がかかりすぎたため、できれば、SQL1文で処理させたいです。
  • 旧の値を一旦別の値にUPDATEし、残り2つをUPDATEし、最初の1つを再度UPDATEする方法をお探しです。

質問者が選んだベストアンサー

  • ベストアンサー
  • jamshid6
  • ベストアンサー率88% (591/669)
回答No.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に更新されたりしないか」と考える必要はありません。

bakuretsu
質問者

お礼

なるほど。 実行してみたら、できました。 ありがとうございました。

関連するQ&A