我有兩列數據。我想在它們上運行select語句,這些語句可以抓取這些列中所有不同的數據片段。例如。如何從多個列中檢索不同的值?
*column 1* *column 2*
dog monkey
monkey elephant
dog monkey
我想能夠返回一個結果集,它有狗,猴子和大象在裏面,就這些。
我有兩列數據。我想在它們上運行select語句,這些語句可以抓取這些列中所有不同的數據片段。例如。如何從多個列中檢索不同的值?
*column 1* *column 2*
dog monkey
monkey elephant
dog monkey
我想能夠返回一個結果集,它有狗,猴子和大象在裏面,就這些。
您可以使用兩種選擇:
Select column1 As c From t
Union
Select column2 From t
Union
將採取重複的護理:
工會的默認行爲是重複的行從結果中刪除。
以下情況如何?
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)
這可能是律啞:select distinct from (select distinct from first_column union select distinct from second)
- 不是有效的SQL,只是邏輯
使用UNION,樣品:
select
column_1 as name
from Table_1
union
select
column_2 as name
from Table_1
輸出: 狗 大象 猴子
沒有實際的解決您的問題,但你的表的設計可能是標準化的候選者.. – InSane 2010-09-03 10:59:17