0

使用 SQL Server 2008,假设我有几个表,其中包含 3 个公共列(不相关):

表格1

col1 colSomeOther col2 colAnotherOne

表2

col1 colSomeOther col2 colAnotherOne

表3

col1 colSomeOther col2 colAnotherOne

我想为上面的 3 个表创建一个合并 col1 和 2 的视图。就像是:

看法

col1   col2

其中 col1 包含表 1、2 和 3 中的所有元素,col2 包含表 1、2、3 中 col2 中的所有元素。

这可能吗?

4

2 回答 2

1

是的。这是一个“工会”;相同“签名”(数据列的数量和类型)的多个结果集,一个接一个地连接。执行此操作的查询很简单:

SELECT col1, col2 FROM TABLE1
UNION ALL
SELECT col1, col2 FROM TABLE2
UNION ALL
SELECT col1, col2 FROM TABLE3

如果您希望查询“去重复”结果,只返回唯一的行,请从联合中省略“ALL”关键字。使用 ALL 关键字,它只是将每个 SELECT 的结果附加到组合结果集,包括 Table2 中可能与 Table1 具有完全相同数据的行。

于 2012-10-16T17:30:59.147 回答
0

我认为您要求的是UNION

select col1, col2 from table1
UNION ALL
select col1, col2 from table2
UNION ALL
select col1, col2 from table3

应该只要在所有三个表中都可以工作col1并且具有兼容的数据类型。col2

如果要消除重复行,请使用UNION而不是UNION ALL.

于 2012-10-16T17:31:54.227 回答