【发布时间】:2021-12-05 09:06:51
【问题描述】:
我想合并两个具有相似和不同列的不同表。唯一不同的列是:Amount-F21 和 A-21。我的问题是当我使用 Access 编写 SQL 请求(UNION ALL)时,它会删除 Amount A-21 列,但我需要这个。谢谢。
SELECT * FROM [Source Alloc-A21]
UNION ALL
SELECT * FROM [Source Alloc-F21]
【问题讨论】:
-
它不会(不能)删除任何东西,但是一个字段只能有一个名称,并且是从第一个查询中选择的。用简单的选择查询替换表,在其中为两个不同的字段名称分配相同的别名。
-
请拍下结果,通过结果看问题。
-
只有在每个数据集中有相同数量的列并且数据类型兼容时才会运行(在必要时使用隐式数据类型强制) .然后,列名继承自第一个
SELECTonly。来自后续SELECT的数据由列位置而不是 名称分配。因此,如果您有SELECT a, b, F21 ... UNION ALL SELECT a, b, A21,则来自A21的数据没有 被删除,它只会出现在F21列中。如果您想覆盖它,只需避免使用*(无论如何这在生产代码中都是不好的做法)。