Вставка данных во временную таблицу с запросом
у меня есть существующий запрос, который выводит текущие данные, и я хотел бы вставить его в временную таблицу, но у меня возникли некоторые проблемы. Кто-нибудь есть некоторое представление о том, как это сделать?
вот пример
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 ответов:
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