Как переместить результаты запроса UNION в новую таблицу? - PullRequest
16 голосов
/ 23 июня 2011

У меня есть пример запроса, как показано ниже:

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]

Любые предложения, пожалуйста, о том, как я обманываю?

Спасибо, Рэй

Ответы [ 3 ]

20 голосов
/ 23 июня 2011

В 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
1 голос
/ 23 июня 2011
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]
)
0 голосов
/ 23 июня 2011

или вам не нужно использовать производную таблицу.Вы можете сделать это тоже

SELECT *   INTO  #temp_UNION  
FROM         [#temp1]     
UNION     
SELECT     *     FROM         [#temp2]     
UNION     SELECT     *     FROM         [#temp3]     
UNION     SELECT     *     FROM         [#temp4]     
UNION     SELECT     *     FROM         [#temp5] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...