1

我有七个表(它们有唯一的行,但有些列是相同的,但每个表都是我们唯一的)。我想创建所有七个表的一个表/视图,但在一个中显示具有相同名称的列。

表格1

custid, ref#, uniq1, uniq2, field3, fiel4

表2

custid, ref#, uniq1, uniq2, field3, fiel4, field5, field6

表3

custid, ref#, uniq1, uniq2, field5, field6, field7, field8

需要输出

表/视图

custid, ref#, uniq1, uniq2, field3, field4, field5, field6, field7, field8

会有很多空值,但这很好

谢谢

4

2 回答 2

4

应该注意的是,Union谓词将强制结果的唯一性。因此,您可能想要使用Union All不会“唯一化”结果的。此外,您需要为缺少的列添加占位符值(在本例中,我使用 NULL),以便每个 Select 语句返回相同数量的列:

Select custid, ref#, uniq1, uniq2, field3, fiel4, NULL As field5
    , NULL As field6, NULL As field7, NULL As field8
Union All
Select custid, ref#, uniq1, uniq2, field3, fiel4, field5, field6, NULL, NULL
Union All
Select custid, ref#, uniq1, uniq2, NULL, NULL, field5, field6, field7, field8

最后,在 Union 或 Union All 查询中,第一个查询中的列名用于结果的列名。因此,对于第一个查询中的占位符值,您将需要添加列别名。

于 2012-06-09T00:17:48.970 回答
0

你想要一个联合,而不是一个连接:

select x, y from table1
union
select x, y from table2
...
于 2012-06-08T23:29:26.717 回答