Ich habe eine SOURCE-Tabelle und eine TARGET-Tabelle. Ich möchte doppelte Datensätze aus der SOURCE-Tabelle löschen (oder sagen, dass ich nur DISTINCT-Datensätze in die TARGET-Tabelle einfügen möchte) unter Berücksichtigung der Kombination von Spalte a und b. Kann mir bitte jemand helfen.Löschen von doppelten Datensätzen mit geclustertem Primärschlüssel
CREATE TABLE #SOURCE (
a int NOT NULL,
b int NOT NULL,
c int NOT NULL,
);
INSERT INTO #SOURCE (a, b, c)
VALUES (1, 2, 3),
(1, 3, 4), --either this record or the one below should be deleted
(1, 3, 6),
(3, 4, 5),
(3, 5, 6),
(5, 6, 7),
(5, 7, 8), --either this record or the one below should be deleted
(5, 7, 0)
(6, 8, 9);
CREATE TABLE #TARGET (
a int NOT NULL,
b int NOT NULL,
c int NOT NULL,
CONSTRAINT pk PRIMARY KEY CLUSTERED (a, b)
);
Also muß ich die Datensätze aus der Quelltabelle löschen (wahrscheinlich die, die ich oben in den Kommentaren markiert) oder mit anderen Worten, wie ich oben gesagt, ich will verschiedene Datensätze nur einfügen (a + b) in ZIEL-Tabelle.
Mögliche Duplikat [sQL 3 Spalten und dedupe auf zwei Spalten wählen] (http://stackoverflow.com/questions/11402025/sql-select-3-columns-and-dedupe -on-zweispaltig) –