Nehmen Sie die Tsql Abfrage unter:Löschen von doppelten Datensätzen eine temporäre Tabelle mit
DECLARE @table TABLE(data VARCHAR(20))
INSERT INTO @table VALUES ('not duplicate row')
INSERT INTO @table VALUES ('duplicate row')
INSERT INTO @table VALUES ('duplicate row')
INSERT INTO @table VALUES ('second duplicate row')
INSERT INTO @table VALUES ('second duplicate row')
SELECT data
INTO #duplicates
FROM @table
GROUP BY data
HAVING COUNT(*) > 1
-- delete all rows that are duplicated
DELETE FROM @table
FROM @table o INNER JOIN #duplicates d
ON d.data = o.data
-- insert one row for every duplicate set
INSERT INTO @table(data)
SELECT data
FROM #duplicates
Ich verstehe, was es tut, aber der letzte Teil der Logik (nach --insert eine Zeile für jede doppelte Satz), doesn Es ergibt keinen Sinn. Wo wir den Code haben für - löscht alle Zeilen, die dupliziert sind, die die Duplikate loswerden, also was ist der Teil des letzten Abschnitts?
Diese Abfrage here
Dank
Macht perfekten Sinn. Wie kann ich als eine Variante der obigen Abfrage jeden doppelten Datensatz erhalten? Z.B. Doppelter Datensatz wird zweimal aufgeführt; Wie kann ich beide Werte bekommen? –
Sie meinen, wählen Sie alle Instanzen von Zeilen, die doppelte Werte haben? – Quassnoi