堆叠两个具有不同列名的sql表(2008)

时间:2012-05-04 16:09:55

标签: sql sql-server union

我检查了这个站点的代码,以堆叠两个表(将结果从一个表放在另一个表的结果下),其中列名不同。我知道UNION ALL在名称相同的情况下工作..我知道UNION ALL在一个表的信息比另一个表有更多信息的情况下,对一个表中缺少的列名称赋值有效但是如果列怎么办名字不同?就像在一个表中列名称是CHP而在另一个表中它是“CHILD HEALTH PLUS”并且我需要将这两列堆叠在一起?

2 个答案:

答案 0 :(得分:6)

只要列的数据类型相同,就可以使用UNION。列名称是否不同并不重要。

SELECT column1
FROM Table1
UNION
SELECT column1
FROM Table2

如果您想知道记录来自哪个表,那么您可以添加另一个区分行的字段:

SELECT column1, 'Table1' as TableName
FROM Table1
UNION
SELECT column1, 'Table2' as TableName
FROM Table2

答案 1 :(得分:0)

什么是sql语言? mysql / sql server?

mysql不要求列名相同,但您可以始终使用“AS”来匹配列名称,例如。

select column1 AS col1, column2 AS col2...
编辑:我刚刚在帖子标题中发现'2008' - 那是sql server 2008吗?无论如何,sql server似乎并不关心。列名称。