我想使用以下查询在SQL Server中创建一个新表。但是我不明白为什么这个查询不起作用。
查询1:有效
SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2
问题2:无法工作。
错误:消息 170,级别 15,状态 1,第 7 行
第 7 行:附近有语法错误“)”。
SELECT * INTO [NEW_TABLE]
FROM
(
SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2
)
谢谢!我想使用以下查询在SQL Server中创建一个新表。但是我不明白为什么这个查询不起作用。
查询1:有效
SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2
问题2:无法工作。
错误:消息 170,级别 15,状态 1,第 7 行
第 7 行:附近有语法错误“)”。
SELECT * INTO [NEW_TABLE]
FROM
(
SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2
)
谢谢!你必须为SQL Server中的派生表定义一个表别名:
SELECT x.*
INTO [NEW_TABLE]
FROM (SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2) x
在这个例子中,“x”是表别名。
INSERT INTO #Temp1
SELECT val1, val2
FROM TABLE1
UNION
SELECT val1, val2
FROM TABLE2
您也可以尝试以下方法:
create table new_table as
select * from table1
union
select * from table2
以下是适用于SQL Server 2017的一种有效语法:
USE [<yourdb-name>]
GO
SELECT * INTO NEWTABLE
FROM <table1-name>
UNION ALL
SELECT * FROM <table2-name>
select *
into new_table
from table_A
UNION
Select *
From table_B
只有当Table_A和Table_B具有相同的模式时,此方法才有效