Как перенести результаты запроса UNION в новую таблицу?
У меня есть пример запроса, как показано ниже:
SELECT *
FROM [#temp1]
UNION
SELECT *
FROM [#temp2]
UNION
SELECT *
FROM [#temp3]
UNION
SELECT *
FROM [#temp4]
UNION
SELECT *
FROM [#temp5]
Как перенести этот запрос этих запросов в новую таблицу?
Примечание. Моя проверка SQL:
Microsoft SQL Server 2008 (SP1) - 10.0.2531.0 (X64) Mar 29 2009 10:11:52 Copyright (c) 1988-2008 Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 6.0 <X64> (Build 6002: Service Pack 2)
Я попробовал другой ответ Stackoverflow, который нашел, т.е.
CREATE TABLE managers AS SELECT * FROM employees WHERE desg = 'MANAGER';
Но я получаю сообщение об ошибке: Incorrect syntax near the keyword 'as'.
Вот мой полный запрос, который не с ошибкой выше:
CREATE TABLE #temp_UNION as
SELECT *
FROM [#temp1]
UNION
SELECT *
FROM [#temp2]
UNION
SELECT *
FROM [#temp3]
UNION
SELECT *
FROM [#temp4]
UNION
SELECT *
FROM [#temp5]
Любые предложения, пожалуйста, о том, как я разобрался?
Спасибо,
Ray
Ответы
Ответ 1
В SQL Server вы должны использовать
SELECT <COLUMNS_LIST>
INTO <NEW_TABLE_NAME>
FROM <TABLES, WHERE ETC>
Дополнительная информация @http://msdn.microsoft.com/en-us/library/ms188029.aspx
Попробуйте следующее:
SELECT *
INTO #temp_UNION
FROM
(
SELECT *
FROM [#temp1]
UNION
SELECT *
FROM [#temp2]
UNION
SELECT *
FROM [#temp3]
UNION
SELECT *
FROM [#temp4]
UNION
SELECT *
FROM [#temp5]
) a
Ответ 2
insert into temp_UNION
select * from (
SELECT *
FROM [#temp1]
UNION
SELECT *
FROM [#temp2]
UNION
SELECT *
FROM [#temp3]
UNION
SELECT *
FROM [#temp4]
UNION
SELECT *
FROM [#temp5]
)
Ответ 3
или вам не нужно использовать производную таблицу. Вы можете сделать это тоже
SELECT * INTO #temp_UNION
FROM [#temp1]
UNION
SELECT * FROM [#temp2]
UNION SELECT * FROM [#temp3]
UNION SELECT * FROM [#temp4]
UNION SELECT * FROM [#temp5]
Ответ 4
SELECT *
INTO #Temp_Union
FROM [#temp1]
UNION
SELECT *
FROM [#temp2]
UNION
SELECT *
FROM [#temp3]
UNION
SELECT *
FROM [#temp4]
UNION
SELECT *
FROM [#temp5]