
お世話になります。
下のようなテーブルでデータのメンテナンスを行いたいのですが、update,deleteを効率良く行う方法はありますでしょうか?
No カラムA カラムB カラムC カラムD
----------------------------------------
1 aaa 111 あああ
2 aaa 222 いいい 123
3 aaa 333 ううう
4 aaa 444 えええ
5 aaa 555 おおお 456
6 bbb 222 いいい
7 bbb 333 ううう
8 bbb 555 おおお
カラムAが「aaa」のレコードと「bbb」のレコードがあり、カラムB,Cは一部のレコードが重複しています。
この状態から、
・No2のカラムDをNo6のカラムDにセット
・No5のカラムDをNo8のカラムDにセット
・No2,3,5のレコードを削除
したいのです。
※カラムB,Cが重複している場合、カラムAが「bbb」のレコードにカラムDの値を反映し、カラムAが「AAA」のレコードは削除したいです。
update,delete共に効率良く行う方法があれば、助かります。
初歩的な質問かも知れませんが、御教示いただけますと幸いです。
よろしくお願い致します。
No.1ベストアンサー
- 回答日時:
効率良くというか、普通のupdate文・delete文ですが・・
update テーブル T1
set T1.カラムD = (select カラムD from テーブル T2 where T2.カラムA = 'aaa' and T1.カラムB = T2.カラムB and T1.カラムC = T2.カラムC)
where T1.カラムA = 'bbb'
and exists (
select * from テーブル T2 where T2.カラムA = 'aaa' and T1.カラムB = T2.カラムB and T1.カラムC = T2.カラムC
);
delete from テーブル T1
where T1.カラムA = 'aaa'
and exists (
select * from テーブル T2 where T2.カラムA = 'bbb' and T1.カラムB = T2.カラムB and T1.カラムC = T2.カラムC
);
こんな感じでどうでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- Oracle sql(oracle)で質問です。 テーブルAのカラム名、日付(yyyymmdd)の値を テーブルB 2 2023/01/06 10:31
- Oracle Oracleですがsqlで質問です。 サブクエリ内で番号というカラムで昇順の1レコード目を取得したい 3 2023/05/22 10:02
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
- その他(IT・Webサービス) レコード200万、カラム60,こういう大規模なデータを最適な管理できるソフト等教えていただけますでし 2 2022/09/17 14:54
- PHP Postgresの特定のカラムからスペースを取る方法 1 2023/02/22 13:18
- その他(プログラミング・Web制作) google formsで回答者をスプレッドシートに記載する方法 1 2023/06/23 11:22
- MySQL SQLでカラムを追加し、条件に合致した場合にフラグ(レコード)を付与する方法 2 2022/05/18 23:54
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
update文で改行を入れる
-
コラムの値からコラム・テーブ...
-
カラム位置変更
-
ADO.NETのDataSetのコピー
-
SQL、2つのテーブルで条件一致...
-
SQL 複数テーブルのupdate
-
sqlplusで表示が変なので、出力...
-
SQL*LoaderでCSVから指定した列...
-
ROWNUMでUPDATEをしたいのです...
-
ORACLE SQL 複数項目の最大抽出
-
テーブルAとBをくっつけてOrderBy
-
oracleのエラー(ORA-00932)の...
-
LONG型の先頭250バイトを Varch...
-
SQLで違うテーブルの値を比較し...
-
どのテーブルのどのカラム??...
-
Oracleのview、synonymをCOMPIL...
-
数値をNUMBER型にするかCHAR型...
-
テーブルやカラムの物理名のネ...
-
sqlで質問です。 idを元にidに...
-
SQLのビューとカーソルの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL、2つのテーブルで条件一致...
-
SQL*LoaderでCSVから指定した列...
-
sqlplusで表示が変なので、出力...
-
update文で改行を入れる
-
SQL 複数テーブルのupdate
-
テーブル名をカラムとして取得...
-
SQLでSUMなどの関数でデータが...
-
ROWNUMでUPDATEをしたいのです...
-
カラム位置変更
-
SQLで違うテーブルの値を比較し...
-
SQL(oracle)でご助言いただきた...
-
特定のカラムが更新されたとき...
-
Oracleのview、synonymをCOMPIL...
-
テーブルやカラムの物理名のネ...
-
DBからタブ区切りのCSVデータを...
-
数値をNUMBER型にするかCHAR型...
-
LONG型の先頭250バイトを Varch...
-
OracleのSQLで同テーブルのカラ...
-
Viewのカラムの長さが不明?
-
件数とデータを同時に取得する...
おすすめ情報