OracleのSQLについて質問があります。
UPDATE文を1度しか使わずに、抽出条件の異なるデータを複数個更新することは可能ですが?
例えば、
テーブル名:TEST
カラム: A B C D UPDATE A B C D
100 010 350 300 → 100 010 200 250
100 020 350 000 → 100 020 200 280
という感じで更新したいのですが、どんなUPDATE文を組み立てればいいのか思いつきません。
なので、何かきっかけになるようなことでも構いませんので、教えてください。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
基本的な発想としては、その両方の抽出を一気に行って、場合分けで更新するということになると思います。
UPDATE TEST
SET C=CASE WHEN B IN ('010','020') THEN '350' ELSE C END,
D=CASE WHEN B='010' THEN '250' WHEN B='020' THEN '280' ELSE D END
WHERE B IN ('010','020')
など。
あまりに複雑な抽出条件なら複数回UPDATEした方がいいですが、無駄を承知で広めに抽出し、更新の条件に合わなければ同じ値をセットするという考え方も取れなくはないです(上記のELSEがそれです)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- Oracle SQL update方法 2 2022/06/22 14:07
- Oracle sqlのupdate文で質問です。 テーブルBの番号をキーにテーブルAの身長をテーブルBの身長に更新 2 2022/11/02 15:15
- Oracle sql(oracle)で質問です。 テーブルAのカラム名、日付(yyyymmdd)の値を テーブルB 2 2023/01/06 10:31
- MySQL 下の画像はSQLの4大命令の性質をまとめたものであるらしいです UPDATE INSERT DELE 1 2023/06/07 15:36
- Oracle update文で質問です。 下記の条件でupdateをしたいですが、どのようにしたら良いでしょうか。 2 2022/06/23 10:51
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- タブレット タブレット内でキーボードを出す良い方法を知っている方、教えて下さい。 3 2022/05/26 05:59
- Windows 10 Windows Updateが動作しません 7 2022/08/12 16:26
- Windows 10 windows11 update の「更新の再開」について初歩的な質問なのですが 1 2022/10/19 00:57
このQ&Aを見た人はこんなQ&Aも見ています
-
性格の違いは生まれた順番で決まる?長男長女・中間子・末っ子・一人っ子の性格の傾向
同じ環境で生まれ育っても、生まれ順で性格は違うものなのだろうか。家庭教育研究家の田宮由美さんに教えてもらった。
-
1テーブル&複数レコードの更新に対して1度のupdate文での処理方法
SQL Server
-
SQL 複数テーブルのupdate
Oracle
-
複数レコードの複数フィールドを一括UPDATE出来ますか?
Oracle
-
-
4
他のテーブルを参照した値はupdateでsetできない?
Oracle
-
5
SQLでUPSERTを一度に複数行やる方法
PostgreSQL
-
6
GROUP BYを行った後に結合したい。
Oracle
-
7
UPDATE文のWHERE条件に他のテーブルのフィールドも入れたい
SQL Server
-
8
Oracle複数の表をもとにmerge文を実行
Oracle
-
9
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
10
エラーを起こす方法
Oracle
-
11
【DB】同じトランザクション内でupdateとselectをしたときの結果値
その他(データベース)
-
12
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
13
日付型のフィールドに空白を入れる方法を教えてください
その他(データベース)
-
14
SQLのVARCHARとVARCHAR2の違い
その他(データベース)
-
15
SQLで特定の項目の重複のみを排除した全項目を取得する方法
その他(プログラミング・Web制作)
-
16
SET句内で複数の条件を指定してUPDATEする方法
Oracle
-
17
updateの一括実行
Oracle
-
18
単一グループのグループ関数ではありません。
Oracle
-
19
SQL、2つのテーブルで条件一致したものだけdeleteする方法は?
Oracle
-
20
ORA-01013のエラーについて経験のある方お願いします。
Oracle
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
これをSQL文で出来るでしょうか?
-
AccessのSQL文で1件のみヒット...
-
【PL/SQL】FROM区に変数を使う方法
-
アクセスのレポートでレコード...
-
where句中のtrim関数について
-
ORMについて
-
大量レコードをTRUNCATEせずに...
-
単一グループのグループ関数で...
-
SQLで条件にヒットしたレコード...
-
osqleditについて
-
updateで複数行更新したい
-
SELECT FOR UPDATE で該当レコ...
-
トランザクションログを出力せ...
-
一気に複数のレコードをinsert...
-
なぜ、WHERE句とHAVING句がある...
-
select文の実行結果に空白行を...
-
SQLローダーCSV取込で、囲み文...
-
レコードの登録順がおかしい
-
Oracleで「文字が無効です」の...
-
テーブルの最後(最新)のレコー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
単一グループのグループ関数で...
-
【PL/SQL】FROM区に変数を使う方法
-
SELECT FOR UPDATE で該当レコ...
-
AccessのSQL文で1件のみヒット...
-
アクセスのレポートでレコード...
-
where句中のtrim関数について
-
group byの並び順を変えるだけ...
-
引数によってwhere句を切り替え...
-
SQL*Loader Append
-
SQLで条件にヒットしたレコード...
-
updateで複数行更新したい
-
データ
-
トランザクションログを出力せ...
-
「数字で始まらない」ものを抽...
-
大量レコードをTRUNCATEせずに...
-
osqleditについて
-
BLOB型項目をSQLの検索条件に指...
-
これをSQL文で出来るでしょうか?
-
ACCESS レコードの並び順について
-
【SQL】違うフィールド同士の集...
おすすめ情報