2010-09-03 7 views
0

J'ai deux colonnes de données. Je voudrais exécuter une instruction select sur eux qui saisit toutes les pièces de données distinctes dans ces colonnes 1 fois. Par exemple.Comment extraire des valeurs distinctes de plusieurs colonnes?

*column 1* *column 2* 
dog   monkey 
monkey  elephant 
dog   monkey 

Je veux être en mesure de returna ensemble de résultats a chien, singe et éléphant et voilà tout.

+2

Pas de réponses réelles à votre problème, mais la conception de votre table peut être un candidat pour .. Normalization – InSane

Répondre

2

Vous pouvez utiliser deux Selects:

Select column1 As c From t 
Union 
Select column2 From t 

Union prendra soin des doublons:

Le comportement par défaut pour UNION est que les doublons sont supprimés du résultat.

1

Qu'en est-il de ce qui suit?

SELECT column1 unique_data FROM your_table 
UNION 
SELECT column2 unique_data FROM your_table; 

Cas de test:

CREATE TABLE your_table (column1 varchar(50), column2 varchar(50)); 

INSERT INTO your_table VALUES ('dog', 'monkey'); 
INSERT INTO your_table VALUES ('monkey', 'elephant'); 
INSERT INTO your_table VALUES ('dog', 'monkey'); 

Résultat:

+-------------+ 
| unique_data | 
+-------------+ 
| dog   | 
| monkey  | 
| elephant | 
+-------------+ 
3 rows in set (0.00 sec) 
0

Il peut être lil stupide: select distinct from (select distinct from first_column union select distinct from second) - pas valide sql, juste la logique

0

Utilisez UNION, échantillon:

select 
    column_1 as name 
from Table_1 
union 
select 
    column_2 as name 
from Table_1 

Sortie: chien éléphant singe

Questions connexes