Ich habe eine vorhandene Abfrage, die aktuelle Daten ausgibt, und ich möchte sie in eine Temp-Tabelle einfügen, habe jedoch einige Probleme damit. Hätte jemand einen Einblick, wie das geht?
Hier ist ein Beispiel
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%', '%')
Dies scheint, meine Daten derzeit so auszugeben, wie ich es brauche, aber ich möchte es in eine temporäre Tabelle übergeben. Mein Problem ist, dass ich für SQL-Abfragen ziemlich neu bin und keinen Weg gefunden habe, dies zu tun. Oder ob es überhaupt möglich ist. Wenn es nicht möglich ist, gibt es einen besseren Weg, um die Daten, die ich suche WHERE application LIKE isNull('%MORESTUFF%','%')
in eine temporäre Tabelle zu bekommen?
Jede Hilfe wäre sehr dankbar! Vielen Dank!
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 benötigt die AS
-Klausel wie folgt:
SELECT *
INTO #temp
FROM (
SELECT col1, col2
FROM table1
) AS x
Die Abfrage ist ohne den AS x
am Ende fehlgeschlagen.
Bei der Verwendung von SS2016 muss as t
am Ende hinzugefügt werden.
Select * into #result from (SELECT * FROM #temp where [id] = @id) as t //<-- as t
Der schnellste Weg dazu ist der Befehl "SELECT INTO", z.
SELECT * INTO #TempTableName
FROM....
Dadurch wird eine neue Tabelle erstellt. Sie müssen sie nicht vorher erstellen.
Das kannst du so machen:
INSERT INTO myTable (colum1, column2)
SELECT column1, column2 FROM OtherTable;
Stellen Sie nur sicher, dass die Spalten übereinstimmen, sowohl in der Anzahl als auch im Datentyp.
Ich persönlich brauchte eine kleine Hand, um herauszufinden, wie man das benutzt.
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
Versuche dies:
SELECT *
INTO #Temp
FROM
(select * from tblorders where busidate ='2016-11-24' and locationID=12
) as X
Bitte verwenden Sie einen Alias mit x, damit Skript und Ergebnis nicht fehlschlagen.
SELECT * INTO #TempTable
FROM SampleTable
WHERE...
SELECT * FROM #TempTable
DROP TABLE #TempTable
Das ist möglich. Versuchen Sie diesen Weg:
Create Global Temporary Table
BossaDoSamba
On Commit Preserve Rows
As
select ArtistName, sum(Songs) As NumberOfSongs
from Spotfy
where ArtistName = 'BossaDoSamba'
group by ArtistName;