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