Gibt es eine Möglichkeit, die unterschiedlichen Zeilen, die nicht zwischen Groß- und Kleinschreibung unterscheiden, aus dieser SAS SQL-Abfrage zu erhalten? ...
%Vor%Die ideale Lösung würde aus einer einzigen Abfrage bestehen.
Ergebnisse sehen jetzt so aus:
%Vor%... wo eine der 2 verschiedenen Zeilen wirklich benötigt wird
Man könnte die Daten in Großbuchstaben schreiben, aber dies ändert unnötigerweise Werte in einer Weise, die dem Zweck dieser Abfrage nicht entspricht.
Wenn Sie einen primären int-Schlüssel haben (nennen wir es ID), könnten Sie verwenden:
%Vor%Normalisieren Fall scheint ratsam - wenn "Australia", "Australien" und "AUSTRALIA" alle auftreten, welche der drei würden Sie als die "case-sensitively unique" Antwort auf Ihre Abfrage schließlich wollen? Wenn Sie sich für bestimmte Heuristiken interessieren (z. B. zählen Sie, wie oft sie auftreten und wählen Sie die beliebtesten), kann dies sicherlich getan werden, aber könnte eine Menge zusätzlicher Arbeit sein - also, wie viel ist solche Persnickeit wert für Sie ?
Eine Nicht-SQL-Methode (wirklich nur ein einzelner Schritt, da der Datenschritt nur eine Ansicht erzeugt) wäre:
%Vor%Ich dachte in der gleichen Weise wie Zach , dachte aber, ich würde das Problem mit einem ausführlicheren Beispiel betrachten,
%Vor% Jetzt können wir
ausgeben
ich. Eine aus jeder Kategorie? Dh drei Adressen?
ODER
ii. Oder nur eine Adresse? Wenn ja, welche Version sollten wir bevorzugen?
Die Implementierung von Fall 1 kann so einfach sein wie:
%Vor%Die Implementierung von Fall 2 kann so einfach sein wie:
%Vor%Von SAS 9:
proc sort data = input_ds sortierung = linguistisch (strengh = primary);
%Vor%run;
Ich denke, dass reguläre Ausdrücke Ihnen mit dem Muster helfen können, das Sie in Ihrer Suchzeichenkette haben möchten.
Für den regulären Ausdruck können Sie eine UDF definieren, die beim Lesen des Tutorials vorbereitet werden kann. www.sqlteam.com/article/regular-expressions-in-t-sql
Danke.