选择使用UNION QUERY

Sek*_*har 32 sql t-sql sql-server union derived-table

我想在SQL Server中使用以下查询创建一个新表.我无法理解为什么这个查询不起作用.

Query1:工作

SELECT * FROM TABLE1
UNION
SELECT * FROM TABLE2 
Run Code Online (Sandbox Code Playgroud)

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
)
Run Code Online (Sandbox Code Playgroud)

谢谢!

OMG*_*ies 76

您必须在SQL Server中为派生表定义表别名:

SELECT x.* 
  INTO [NEW_TABLE]
  FROM (SELECT * FROM TABLE1
        UNION
        SELECT * FROM TABLE2) x
Run Code Online (Sandbox Code Playgroud)

"x"是此示例中的表别名.

  • @Christa - 这可能是因为在两个表中都有相同的行,它只会为联合创建一个记录。如果您使用“UNION ALL”,它不会删除重复项。 (3认同)