ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

QNo.3315165 重複レコードの削除
質問者:moroderman あるテーブル(ここではTESTというテーブルとします)の重複レコードを削除したいので、以下のようなストアド・プロシージャを作成しました。

SELET DISTINCT * INTO TEST2 FROM TEST
DELETE FROM TEST
SELECT * INTO TEST FROM TEST2
DROP TABLE TEST2

開発終了後、システムの都合上、テーブルの追加はできないことが発覚し、TESTテーブル上で重複レコードを削除しなくてはならなくなりました。

カーソル等を利用すれば重複削除できると思いますが、ほかにシンプルな方法で重複レコードを削除する方法はありませんか?
困り度:
  • 暇なときにでも
質問投稿日時:
07/09/04 18:25
この質問に対する回答は締め切られました。

回答良回答20pt

ANo.2 テンポラリーテーブルを作る方法でできませんか?
ストアドプロシージャ内でTEST2に該当するテーブルを造ります。

Create Table #TEST2 (以下略

というように頭に「#」をつけてください。
以降このテンポラリーテーブルを使えば、同じ手順でできると思います。
回答者:Kuppycat
種類:アドバイス
どんな人:経験者
自信:参考意見
回答日時:
07/09/05 12:28
この回答へのお礼教えて頂いた方法で解決できました。ありがとうございました。

回答良回答10pt

ANo.1 SQL Serverは2000ですか?2005ですか?

表の構成列は、何個くらいありますか?
すべての列の値が重複した行が、複数存在するのですよね?
回答者:chukenkenkou
種類:補足要求
どんな人:一般人
自信:参考意見
回答日時:
07/09/04 19:34
この回答への補足大変失礼いたしました。

SQL Server のバージョンは2000です。
列は10つしかありませんがし、
重複レコードは数件ですが、
全レコード数は10万件以上あります。

重複レコードは、すべての列が重複しています。
従ってSELECT DISTINCT * FROM TESTとするだけで
重複で排除できます。

宜しくお願い致します。
この回答へのお礼この回答にお礼をつける(質問者のみ)