结合2个不同但非常相似的表格

时间:2009-09-30 19:00:28

标签: sql sql-server tsql union

我有2个相似但不相同的表,因此联合不可能。我需要结合表格,记住大约有40列,其中只有20列是共同的。关于最佳方法的任何想法?

Table1

ActivityCategory    ActivityType   Nationality   Language
---------------------------------------------------------
Communication       Telephone      French        French
Meeting             Session        British       English


Table2

ActivityCategory    ActivityType   Nationality   Employment
-----------------------------------------------------------
Communication       Fax            American      Employed


Combined Table

ActivityCategory    ActivityType   Nationality   Language   Employment
----------------------------------------------------------------------
Communication       Telephone      French        French
Meeting             Session        British       English
Communication       Fax            American                 Employed

3 个答案:

答案 0 :(得分:5)

做一个UNION,但首先你必须使表格结构相同。

在SELECT for Table1中,将Employment作为NULL值列添加

在SELECT for Table2中,将Language添加为NULL值列

SELECT ActivityCategory, ActivityType, Nationality, Language, NULL AS Employment
FROM Table1
UNION
SELECT ActivityCategory, ActivityType, Nationality, NULL AS Language, Employment
FROM Table1

答案 1 :(得分:1)

联合什么可以结合,然后加入其余的列?

如果您只需要一次这样做,那很可能。我想即使有了观点也可以这样做。

答案 2 :(得分:1)

Raj的建议很好,但你可能想要一个UNION ALL而不是UNION。

来自BOL

  

UNION ALL将所有行合并到结果中。这包括重复。如果未指定,则删除重复的行。

使用UNION支付价格以保证没有重复,但在您的情况下,听起来你不会有重复。