尝试基于多个表的联合创建新表,但在"("期望")"或"选择"附近得到不正确的语法



我要做的是创建一个基于所有其他表(共16)的联合的新表,因为它们具有相同的列。我用的是Microsoft SQL Server。

select * into NewTable from(
select *
from table 1 
union all
select *
from table 2 
union all
) as sub
...

我一直在'('期待')'或SELECT附近得到不正确的语法。我是否应该在子查询中给每个表一个别名?不知道该怎么办

我想你在查询末尾有一个额外的Union All语句。

请尝试:

select * into NewTable from(
select *
from table 1 
union all
(select *
from table 2 )
Union ALL
(Select Field1, Field 2
from Table3 )
) as sub

根据表的大小,您可能希望限制返回的列,而不是选择所有列。

我去弄清楚这个MS SQL,我通常不使用,只是为了好玩。

下面是一个来自SQL Fiddle的完整示例:

CREATE TABLE table_1 (col_1 int);
CREATE TABLE table_2 (col_1 int);
INSERT INTO table_1 VALUES (1), (2);
INSERT INTO table_2 VALUES (100), (200);
SELECT * INTO union_table 
FROM (SELECT * FROM table_1) AS X UNION ALL (SELECT * FROM table_2);
SELECT * FROM union_table;

的回报:

<表类>col_1tbody><<tr>12100200

最新更新