Ist es möglich, DISTINCT mit Groß- und Kleinschreibung (SAS PROC SQL) zu verwenden?

8

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.

    
Rog 29.05.2009, 05:31
quelle

7 Antworten

6

Wenn Sie einen primären int-Schlüssel haben (nennen wir es ID), könnten Sie verwenden:

%Vor%     
Roee Adler 29.05.2009, 05:40
quelle
2

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 ?

    
Alex Martelli 29.05.2009 05:39
quelle
2

Eine Nicht-SQL-Methode (wirklich nur ein einzelner Schritt, da der Datenschritt nur eine Ansicht erzeugt) wäre:

%Vor%     
Simon Nickerson 29.05.2009 07:17
quelle
1

Vielleicht vermisse ich etwas, aber warum nicht einfach:

%Vor%

Dies erstellt eine Ansicht mit nur eindeutigen Namen als Zeilenwerte.

    
Zach 29.05.2009 18:22
quelle
0

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%     
Raz 29.05.2009 23:23
quelle
0

Von SAS 9:

proc sort data = input_ds sortierung = linguistisch (strengh = primary);

%Vor%

run;

    
Edwin Isensee 04.10.2013 20:49
quelle
-2

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.

    
Ashish Jain 29.05.2009 08:11
quelle

Tags und Links