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 x
aan het einde.
Bewerken
Het is ook nodig bij het gebruik van SS2016, moest as t
aan 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