我想在SQL Server中使用以下查询创建一个新表。我无法理解为什么这个查询不起作用。
Query1:Works
SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2
Query2:不起作用。
错误:Msg 170, Level 15, State 1, Line 7
Line 7: Incorrect syntax near ')'.
SELECT * INTO [NEW_TABLE]
FROM
(
SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2
)
谢谢!
答案 0 :(得分:72)
您必须在SQL Server中为派生表定义表别名:
SELECT x.*
INTO [NEW_TABLE]
FROM (SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2) x
“x”是此示例中的表别名。
答案 1 :(得分:2)
INSERT INTO #Temp1
SELECT val1, val2
FROM TABLE1
UNION
SELECT val1, val2
FROM TABLE2
答案 2 :(得分:2)
这是SQL Server 2017的一种有效语法:
USE [<yourdb-name>]
GO
SELECT * INTO NEWTABLE
FROM <table1-name>
UNION ALL
SELECT * FROM <table2-name>
答案 3 :(得分:1)
您也可以尝试:
create table new_table as
select * from table1
union
select * from table2
答案 4 :(得分:1)
select *
into new_table
from table_A
UNION
Select *
From table_B
仅当Table_A和Table_B具有相同的模式
时才有效