Oracle
 sql >> Base de données >  >> RDS >> Oracle

Requête SQL pour obtenir des valeurs distinctes de toutes les valeurs de colonne dans une table

Vous pouvez le faire comme ceci :

select col1 from table union
select col2 from table union
. . .
select coln from table;

L'utilisation de union supprime les valeurs en double. Notez que cela suppose que les types de colonnes sont compatibles (comme tous étant des chaînes).

MODIFIER :

Si la colonne d'une table ne doit avoir qu'un seul type. (Ok, ça pourrait être une variante, mais ce n'est probablement pas une simplification.) Vous pouvez tout convertir en varchar2() :

select cast(col1 as varchar2(255)) from table union
select cast(col2 as varchar2(255)) from table union
. . .
select cast(coln as varchar2(255)) from table;

Vous pouvez également regrouper les colonnes par type de données et effectuer une exécution distincte pour chacune, ou une colonne distincte pour chaque type de données. Il est peu probable que vous ayez des correspondances exactes entre les types de données, cela pourrait donc répondre à vos besoins.