所以我有5个表需要进入Result; 2位,3位,4位,5位和6位。它们具有相同的结构。以下代码是否可以完成任务:
null
或者它需要看起来像这样
Insert into Result select * from 2-digit, 3-digit, 4-digit, 5-digit, 6-digit;
以下是一些示例数据。期望的结果是简单地将这三个表合并为一个而不操纵数据或行。最终结果应该有12行。
Insert into Result select * from 2-digit, select * from 3-digit, select * from 4-digit,select * from 5-digit,select * from 6-digit;
答案 0 :(得分:1)
您可以使用SELECT . . . UNION
解决此问题:
SELECT * FROM table1
UNION ALL
SELECT * FROM table2
UNION ALL
SELECT * FROM table3
. . . and so on
如果表结构不是完全相同(它们具有不同数量的列或列具有略微不同的名称,或者具有不同的顺序),那么您将不得不替换{{ 1}}明确列出了列名。
首先考虑五个表是数据库设计中的一个缺陷 - 为什么不将它们全部放在一个表中,然后只需要*
出你想要的行。
答案 1 :(得分:0)
使用SUBSTRING()
INSERT INTO Results
SELECT SUBSTRING('102100',1,2) [2-digits],
SUBSTRING('102100',1,3) [3-digits],
SUBSTRING('102100',1,4) [4-digits],
SUBSTRING('102100',1,5) [5-digits],
'102100' [6-digits]
FROM tablename
结果
2-digits 3-digits 4-digits 5-digits 6-digits
10 102 1021 10210 102100
替代' 102100'使用表格中的列名