Existe-t-il un moyen d'obtenir les lignes distinctes insensibles à la casse de cette requête SQL SAS? ...Est-il possible de faire un DISTINCT insensible à la casse avec SAS (PROC SQL)?
SELECT DISTINCT country FROM companies;
La solution idéale consisterait en une seule requête.
Les résultats ressemblent maintenant:
Australia
australia
AUSTRALIA
Hong Kong
HONG KONG
... où l'un des 2 lignes distinctes est vraiment nécessaire
On pourrait en majuscules les données, mais cela change inutilement les valeurs d'une manière ne correspond pas à l'objectif de cette requête.
Merci. Je pense que c'est la meilleure approche disponible. J'imagine aussi qu'il sera difficile de mettre à l'échelle plusieurs colonnes distinctes et des milliers de lignes, mais cela donnera un coup de feu. Ma requête de la vie réelle est un peu plus élaborée que l'exemple utilisé pour ma question. – Rog
Il doit y avoir une certaine heuristique dans la solution, et je crois que vous devez vous décider explicitement vous-même (par exemple choisir celui avec l'ID le plus bas). Si votre problème SQL est "plus grand" - posez une question plus élaborée et laissez la foule SO essayer ... :) –
Pouvez-vous expliquer dans votre question pourquoi la solution upper() est moins qu'optimale? Dans cette solution, le cas (correct, supérieur, inférieur, fou, etc.) est complètement arbitraire et basé sur l'ordre dans les données. Pourquoi la première instance de cas serait-elle plus pertinente en tant que résultat de retour que l'instance de cas supérieure (pays)? –