SQL Serverテーブルから重複行を削除する方法は?



問題を排除するために楽器を試してください

SQL Serverでオブジェクトを設計するときは、特定のベストプラクティスに従う必要があります。たとえば、テーブルには、主キー、ID列、クラスター化インデックスと非クラスター化インデックス、データの整合性、およびパフォーマンスの制約が必要です。データベース設計のベストプラクティスに従って、SQLServerテーブルに重複する行を含めることはできません。ただし、これらのルールに従わないデータベースや、これらのルールが意図的にバイパスされた場合に例外が発生する可能性があるデータベースを処理する必要がある場合があります。ベストプラクティスに従っていますが、行が重複するなどの問題が発生する可能性があります。



たとえば、中間テーブルのインポート中にこのタイプのデータを取得することもできます。冗長な行を削除してから、実際に本番テーブルに追加します。さらに、重複する情報により、リクエストの複数の処理、誤ったレポート結果などが発生する可能性があるため、行が重複する可能性を残してはなりません。ただし、列にすでに重複する行がある場合は、特定の方法に従って重複データをクリーンアップする必要があります。この記事のいくつかの方法を見て、データの重複を排除しましょう。



重複する行を含むテーブル



SQL Serverテーブルから重複行を削除する方法は?

SQL Serverには、次のような特定の状況に基づいてテーブル内の重複レコードを処理する方法がいくつかあります。

一意のインデックスSQLServerテーブルから重複する行を削除する

インデックスを使用して、重複データを一意のインデックステーブルに分類してから、重複レコードを削除できます。まず、 データベースを作成する 「test_database」という名前を付けてから、「 社員 以下のコードを使用して、一意のインデックスを持つ」。

USEマスターGOCREATE DATABASE test_database GO USE [test_database] GO CREATE TABLE Employee([ID] INT NOT NULL IDENTITY(1,1)、[Dep_ID] INT、[Name] varchar(200)、[email] varchar(250)NULL 、[city] varchar(250)NULL、[address] varchar(500)NULL CONSTRAINT Primary_Key_ID PRIMARY KEY(ID))

出力は以下のようになります。



テーブル「従業員」の作成

次に、テーブルにデータを挿入します。重複する行も挿入します。 「Dep_ID」003,005と006は、一意のキーインデックスを持つID列を除いて、すべてのフィールドで同様のデータを持つ重複行です。以下のコードを実行します。

USE [test_database] GO INSERT INTO Employee(Dep_ID、Name、email、city、address)VALUES(001、 'Aaaronboy Gutierrez