2

重複の可能性:
SQL で重複行を削除するには?

主キーのないテーブルと、エントリが重複する列があります。テーブルに 1 つのエントリを保持したまま、すべての重複を削除したいと考えています。助けてください

4

3 に答える 3

4

SQL Server 2005 以降を使用しているため、CTE を使用してこれを実行できます。

;WITH cte AS 
(
  SELECT ROW_NUMBER() OVER (PARTITION BY Col1, Col2, Col3  ORDER BY (SELECT 0)) RN
  FROM  yourtable
)
DELETE FROM cte
WHERE RN > 1
于 2012-10-10T23:11:06.017 に答える
1

すべてのフィールドで Partition By を使用して Row_Number 関数を使用し、RN = 1 の行のみを保持します。

于 2012-10-10T11:25:29.777 に答える
0

ストアド プロシージャとプロシージャの内部を作成します。

  1. 指定されたテーブル構造から動的に一時テーブルを作成する必要があります
  2. 次に、テーブルから一時テーブルにすべての個別の行を挿入します
  3. 最後にテーブルを切り捨てる
  4. そして最後に一時テーブルから行を挿入し、一時テーブルを削除します

問題がある場合は、sp を書く必要があります。

于 2012-10-10T11:11:52.533 に答える