2015-05-13 37 views
4

假设发现了不同的产品,我有我的数据集以下组合:MSSQL - 选择了在两列

**ProductA**   **ProductB** 
    Apple     Banana 
    Apple     Orange 
    Apple     Pear 
    Banana     Orange 
    Banana     Pear 
    Orange     Pear 

我怎么会在一列中返回的独特产品的完整列表?下面所需的输出:

**Products** 
Apple 
Banana 
Orange 
Pear 

如果我选择不重复的,我显然不会让梨,因为它不是在列产品A包括在内。

任何帮助,将不胜感激。谢谢!

+0

这是一个家庭作业的问题? – Pradheep

+0

哈 - 不,这不是功课。我沉迷于产品名称,使其易于遵循。 – user1765523

+0

从productA选择水果UNION从productB选择水果B – mohan111

回答

7

您可以UNION在一起作为一个单一的列:

SELECT ProductA AS Products 
FROM tablename 
UNION 
SELECT ProductB 
FROM tablename; 
+2

我认为你不需要DISTINCT,因为UNION会为你返回不同的值。 – BICube

+0

你真棒,谢谢! – user1765523

+0

是啊我同意@Ala简单的联合工作原理为什么要使用派生表和Distinct,如果你真的需要相同的输出。通过使用Distinct和Derived表,然后更多的查找将在表上完成,查询成本将增加..只是检查与执行计划 – mohan111