У меня есть существующий запрос, который выводит текущие данные, и я хотел бы вставить его в таблицу Temp, но у меня возникают некоторые проблемы с этим. Кто-нибудь знает, как это сделать?
Вот пример
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%', '%')
Кажется, что сейчас мои данные выводятся так, как мне нужно, но я хотел бы передать их в таблицу Temp. Моя проблема в том, что я новичок в SQL-запросах и не смог найти способ сделать это. Или, если это вообще возможно. Если это невозможно, есть ли лучший способ получить данные, которые я ищу, WHERE application LIKE isNull('%MORESTUFF%','%')
во временную таблицу?
sql
sql-server
ssms
козел отпущения17
источник
источник
#temp
таблицу, которая уже существует, или нужно будет создать новую?LIKE ISNULL('%MORESTUFF%', '%')
всегда будет так жеLIKE '%MORESTUFF%'
, не так ли? Поскольку "% MORESTUFF%" (строковый литерал) никогда не бывает нулевым?Ответы:
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
символа в конце.РЕДАКТИРОВАТЬ
Это тоже нужно при использовании SS2016, пришлось добавить
as t
в конец.Select * into #result from (SELECT * FROM #temp where [id] = @id) as t //<-- as t
источник
Самый быстрый способ сделать это - использовать команду «SELECT INTO», например
SELECT * INTO #TempTableName FROM....
Это создаст новую таблицу, вам не нужно создавать ее заранее.
источник
Лично мне нужна была небольшая рука, чтобы понять, как это использовать, и это действительно здорово.
IF(OBJECT_ID('tempdb..#TEMP') IS NOT NULL) BEGIN DROP TABLE #TEMP END 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
источник
Сделать это можно так:
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 #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;
источник