Löschen Sie doppelte Zeilen in T-SQL basierend auf Primärschlüsselspalten effizient
Frage:
Aufgrund eines Fehlers bei der Datenerstellung enthält die Tabelle eine große Anzahl doppelter Zeilen. Das Ziel besteht darin, redundante Zeilen zu eliminieren und gleichzeitig eine Zeile für jede eindeutige Kombination von Primärschlüsselspalten beizubehalten. Allerdings enthält die Tabelle einige Spalten, die für die Frage nicht relevant sind und leicht unterschiedliche Daten enthalten und ignoriert werden müssen.
Lösung:
Für SQL Server 2005 und höher können Sie die Funktion OVER() und allgemeine Tabellenausdrücke (CTE) verwenden, um doppelte Zeilen effizient zu entfernen.
CTE- und DELETE-Anweisungen:
<code class="language-sql">WITH cte AS ( SELECT [foo], [bar], row_number() OVER(PARTITION BY foo, bar ORDER BY baz) AS [rn] FROM TABLE ) DELETE cte WHERE [rn] > 1</code>
Anleitung:
Das obige ist der detaillierte Inhalt vonWie lösche ich effizient doppelte Zeilen in T-SQL basierend auf Schlüsselspalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!