Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Löschen doppelter Datensätze mit nur einer Abfrage

Verwenden einer ROW_NUMBER in einem CTE ermöglicht es Ihnen, doppelte Werte zu löschen, während eindeutige Zeilen beibehalten werden.

WITH q AS (
  SELECT RN = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID )
         , ID
         , Name
  FROM   ATable
)
DELETE FROM q WHERE RN > 1