2017-04-21 6 views
1

Ich habe 250 Spalten in Kundentabelle. Gemäß meinem Prozess sollte es nur eine Zeile pro Kunde geben, aber ich habe wenige Kunden gefunden, die mehr als einen Eintrag in der Tabelle haben.SQL zum Identifizieren von doppelten Spalten aus der Tabelle mit Hunderten von Spalten

Nach der Ausführung der gesamten Tabelle für diesen Kunden gibt es immer noch zwei Zeilen für mich zurück . Ich vermute, dass eine der Spalten mit Leerzeichen/Junk aus Quellentabellen suffigiert werden kann, was zu zwei Zeilen derselben Information führt.

select distinct * from (select * from customer_table where custoemr = '123') a; 

Die obige Abfrage gibt zwei Zeilen zurück. Wenn Sie mit bloßem Auge Ergebnisse sehen, gibt es keinen Unterschied in irgendeiner Spalte.

Ich kann identifizieren, welche Spalte Duplikate verursacht, wenn ich Abfrage jedes Mal für jede Spalte mit unterschiedlichen ausführen, aber denke, dass wäre sehr manuelle Aufgabe für 250 Spalten.

Das klingt wie sehr dumme Frage, aber irgendwie fest hier. Bitte schlagen Sie vor, wenn Sie eine bessere Möglichkeit haben, dies zu identifizieren, danke.

+0

Sie könnten ein dynamisches SQL-Skript schreiben, das alle Spalten Ihrer Tabelle durchläuft und Spalten nur für die Kunden vergleicht, die mehr als 1 Zeile in Ihrer Tabelle haben. –

+0

Können Sie einfach die 2 Zeilen auf den Post kopieren? –

+0

MySQL oder SQL Server? Sie haben beide markiert. – Fred

Antwort

0

Lösung dieses einmalige Problem mit SQL ist zu viel Aufwand. Einfach kopieren-einfügen, um Excel, transponieren Daten in Spalten und verwenden Sie eine einfache Funktion wie "wenn a == b dann 1 else 0".

Verwandte Themen