2010-09-03 59 views
0

我有兩列數據。我想在它們上運行select語句,這些語句可以抓取這些列中所有不同的數據片段。例如。如何從多個列中檢索不同的值?

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

我想能夠返回一個結果集,它有狗,猴子和大象在裏面,就這些。

+2

沒有實際的解決您的問題,但你的表的設計可能是標準化的候選者.. – InSane 2010-09-03 10:59:17

回答

2

您可以使用兩種選擇:

Select column1 As c From t 
Union 
Select column2 From t 

Union將採取重複的護理:

工會的默認行爲是重複的行從結果中刪除。

1

以下情況如何?

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

測試用例:

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'); 

結果:

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

這可能是律啞:select distinct from (select distinct from first_column union select distinct from second) - 不是有效的SQL,只是邏輯

0

使用UNION,樣品:

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

輸出: 狗 大象 猴子

相關問題