Вставка данных во временную таблицу с запросом


у меня есть существующий запрос, который выводит текущие данные, и я хотел бы вставить его в временную таблицу, но у меня возникли некоторые проблемы. Кто-нибудь есть некоторое представление о том, как это сделать?

вот пример

SELECT *
FROM  (SELECT Received,
              Total,
              Answer,
              ( CASE
                  WHEN application LIKE '%STUFF%' THEN 'MORESTUFF'
                END ) AS application
       FROM   FirstTable
       WHERE  Recieved = 1
              AND application = 'MORESTUFF'
       GROUP  BY CASE
                   WHEN application LIKE '%STUFF%' THEN 'MORESTUFF'
                 END) data
WHERE  application LIKE isNull('%MORESTUFF%', '%') 

это, кажется, выводит мои данные в настоящее время так, как мне это нужно, но я хотел бы передать его в временную таблицу. Моя проблема заключается в том, что я довольно новичок в SQL-запросах и не смог найти способ сделать это. Или если это даже так вероятный. Если это невозможно, есть ли лучший способ получить данные, которые я ищу WHERE application LIKE isNull('%MORESTUFF%','%') во временную таблицу?

любая помощь будет высоко ценится! Спасибо!

8 96

8 ответов:

SELECT *
INTO #Temp
FROM

  (SELECT
     Received,
     Total,
     Answer,
     (CASE WHEN application LIKE '%STUFF%' THEN 'MORESTUFF' END) AS application
   FROM
     FirstTable
   WHERE
     Recieved = 1 AND
     application = 'MORESTUFF'
   GROUP BY
     CASE WHEN application LIKE '%STUFF%' THEN 'MORESTUFF' END) data
WHERE
  application LIKE
    isNull(
      '%MORESTUFF%',
      '%')

SQL Server R2 2008 нуждается в AS п. следующим образом:

SELECT * 
INTO #temp
FROM (
    SELECT col1, col2
    FROM table1
) AS x

запрос не без AS x В конце.


EDIT

это также необходимо при использовании SS2016, пришлось добавить as t до конца.

 Select * into #result from (SELECT * FROM  #temp where [id] = @id) as t //<-- as t

самый быстрый способ сделать это с помощью команды "SELECT INTO" например

SELECT * INTO #TempTableName
FROM....

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

вы можете сделать это так:

INSERT INTO myTable (colum1, column2)
SELECT column1, column2 FROM OtherTable;

просто убедитесь, что столбцы совпадают, как по количеству, так и по типу данных.

попробуйте это:

SELECT *
INTO #Temp
FROM 
(select * from tblorders where busidate ='2016-11-24' and locationID=12
) as X

пожалуйста, используйте псевдоним с x, чтобы он не подвел сценарий и результат.

лично мне нужно было немного подержать руку, чтобы понять, как это использовать, и это действительно потрясающе.

SELECT *
    INTO #TEMP
    FROM (
    The query you want to use many times
    ) AS X

SELECT * FROM #TEMP WHERE THIS = THAT
SELECT * FROM #TEMP WHERE THIS <> THAT
SELECT COL1,COL3 FROM #TEMP WHERE THIS > THAT

DROP TABLE #TEMP
SELECT * INTO #TempTable 
FROM SampleTable
WHERE...

SELECT * FROM #TempTable
DROP TABLE #TempTable

это возможно. Попробуйте так:

Create Global Temporary Table 
BossaDoSamba 
On Commit Preserve Rows 
As 
select ArtistName, sum(Songs) As NumberOfSongs 
 from Spotfy 
    where ArtistName = 'BossaDoSamba'
 group by ArtistName;