Gegevens invoegen in tijdelijke tabel met query

Ik heb een bestaande query die de huidige gegevens uitvoert en ik zou deze graag in een Temp-tabel willen invoegen, maar ik heb wat problemen om dit te doen. Heeft iemand enig idee hoe dit te doen?

Hier is een voorbeeld

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%', '%') 

Dit lijkt mijn gegevens momenteel uit te voeren zoals ik het nodig heb, maar ik wil het graag doorgeven aan een tijdelijke tabel. Mijn probleem is dat ik vrij nieuw ben in SQL Queries en geen manier heb kunnen vinden om dit te doen. Of het überhaupt mogelijk is. Als het niet mogelijk is, is er dan een betere manier om de gegevens die ik zoek WHERE application LIKE isNull('%MORESTUFF%','%')in een tijdelijke tabel te krijgen?


Antwoord 1, autoriteit 100%

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%',
      '%')

Antwoord 2, autoriteit 79%

SQL Server R2 2008 heeft de AS-clausule als volgt nodig:

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

De query is mislukt zonder de AS xaan het einde.


Bewerken

Het is ook nodig bij het gebruik van SS2016, moest as taan het einde toevoegen.

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

Antwoord 3, Autoriteit 19%

De snelste manier om dit te doen, gebruikt “Select in” opdracht E.g.

SELECT * INTO #TempTableName
FROM....

Hiermee wordt een nieuwe tabel gemaakt, u hoeft het niet van tevoren te maken.


Antwoord 4, Autoriteit 7%

Persoonlijk had ik een beetje hand in het uitzoeken hoe ik dit moest gebruiken en het is echt, geweldig.

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

Antwoord 5, Autoriteit 4%

U kunt dat als volgt doen:

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

Zorg ervoor dat de kolommen overeenkomen, zowel in nummer als in datatype.


Antwoord 6, Autoriteit 2%

Probeer dit:

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

Gebruik alias met x, dus het is het script en het resultaat niet mislukt.


Antwoord 7

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

Antwoord 8

Dit is mogelijk.
Probeer op deze manier:

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

Antwoord 9

Gebruik op het einde van de query

Selecteer * in #temp
(Selecteer * van tabel1, tabel2) als temp_table

Other episodes