Heim >Datenbank >MySQL-Tutorial >Wie lösche ich doppelte Zeilen in SQL ohne eindeutige Kennung?

Wie lösche ich doppelte Zeilen in SQL ohne eindeutige Kennung?

Patricia Arquette
Patricia ArquetteOriginal
2025-01-23 01:37:08929Durchsuche

How to Delete Duplicate Rows in SQL Without a Unique Identifier?

Doppelte Zeilen ohne eindeutige Kennung entfernen

Um doppelte Zeilen aus einer Tabelle zu entfernen, die keine eindeutige Bezeichnerspalte haben, können Sie einen CTE (Common Table Expression) in Verbindung mit ROW_NUMBER() verwenden.

Lösung:

Bitte beachten Sie die folgende Anfrage:

<code class="language-sql">WITH CTE AS (
   SELECT [col1], [col2], [col3], [col4], [col5], [col6], [col7],
       RN = ROW_NUMBER() OVER (PARTITION BY col1 ORDER BY col1)
   FROM dbo.Table1
)
DELETE FROM CTE WHERE RN > 1;</code>

Diese Abfrage bewirkt Folgendes:

  1. CTE erstellen: Es wird ein CTE mit dem Namen „CTE“ erstellt und jeder Zeile eine eindeutige ROW_NUMBER() zugewiesen, wobei in jeder eindeutigen Wertpartition ab 1 der Spalte „col1“ gezählt wird.
  2. Duplikate identifizieren: Die Abfrage identifiziert doppelte Zeilen, indem sie prüft, ob ROW_NUMBER() größer als 1 ist.
  3. Duplikate entfernen: Anschließend werden alle Zeilen im CTE entfernt, die doppelte ROW_NUMBER()-Werte haben.

Ergebnis:

Das Ergebnis der Abfrage ist eine Tabelle, in der doppelte Zeilen entfernt wurden und nur das erste Vorkommen jeder eindeutigen Zeile erhalten bleibt. Dies wird erreicht, ohne dass eine eindeutige Bezeichnerspalte in der Originaltabelle erforderlich ist.

Das obige ist der detaillierte Inhalt vonWie lösche ich doppelte Zeilen in SQL ohne eindeutige Kennung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn