2

我检查了这个站点的代码来堆叠两个表(将一个表的结果放在另一个表的结果下方),其中列名不同。我知道当名称相同时 UNION ALL 有效。我知道当一个表比另一个表具有更多信息时,分配一个表中缺少的列名的 UNION ALL 有效。但是如果列怎么办名字不一样?就像如果在一个表中的列名是 CHP 而在另一个表中是“儿童健康加”,我需要将这两列堆叠在一起怎么办?

4

2 回答 2

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
于 2012-05-04T16:21:25.260 回答
0

什么sql语言?mysql/sql 服务器?

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

select column1 AS col1, column2 AS col2...

编辑:我刚刚在帖子标题中发现了“2008” - 那是 sql server 2008 吗?无论如何,sql server 似乎并不关心。列名。

于 2012-05-04T16:17:47.537 回答