sql - 如何将三个最相似但又有些不同的表合并为一张表?
问题描述
我想知道将三个表合并到一个新表中的最简单方法是什么。这些表的字段名称大多相似,但一个表的字段比另外两个多 20 个,而更宽的表大约有 130 个字段。在字段名称匹配的地方,都完全相同。这三个表有大约 1M、1.5M 和 2M 条记录。
我可以做到这一点。
CREATE TABLE ALLMERGED AS(
SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2
UNION
SELECT * FROM TABLE3)
我只是想知道星字符是否可靠地以正确的顺序排列所有字段。这是最佳做法吗?
我在 SQL Server Azure 2019 上。
谢谢。
解决方案
UNION 子句的第一条规则是列数必须相同。根据您的描述,列数不同,因此您的查询将失败。
为了创建一个新表,您需要明确提及列名,如下所示 -
SELECT COL1, COL2, COL3 INTO ALLMERGED FROM TABLE1
UNION ALL
SELECT COL1, COL2, COL3 FROM TABLE2
UNION ALL
SELECT COL1, COL2, COL3 FROM TABLE3;
您还需要注意所有这些列的数据类型也必须相同。
推荐阅读
- vhdl - 在模拟 VHDL 文件时,如何在 modelsim 中使用类型为 unsigned(n downto 0) 的 force 命令?
- elasticsearch - Moloch Viewer 在节点名称更改后无法查看 PCAP
- gradle - 将传递依赖转换为 compileOnly 依赖
- scroll - Brio 应用程序 - 冷冻滚动条
- python - 收到错误:命令出错,退出状态为 1:尝试为 Python 3.9.x 下载 dbus-python 时出现消息
- c - 在 C 中声明 typedef 枚举的正确方法?
- swift - 更改对象的颜色
- kubernetes - Bitnami external-dns 不会删除 Route53
- javascript - 如何在 Electron 应用程序中隐藏或显示菜单标签
- python - 如何在python中估计双高斯拟合的参数