L’istruzione SELECT INTO permette di effettuare una select ed inserire il resultset in un altra tabella. E' spesso usata per creare copie di backup di tabelle oppure per archiviare dei record.
SELECT
Nome/Nomi_Colonna
INTO Nuova_Tabella
FROM TabellaSorgente
Possiamo anche aggiungere delle clausole where. Per copiare dei subset di valori
SELECT
Nome/Nomi_Colonna
INTO Nuova_Tabella
FROM TabellaSorgente
WHERE
Condizione
E’ anche possibile selezionare dati da più di una tabella tramite delle join.
SELECT
Nome/Nomi_Colonna
INTO Nuova_Tabella
FROM TabellaSorgente1
JOIN TabellaSorgente2
ON Condizioni
Prediamo in esame due tabelle:
Tabella Società
Societa | Codice |
---|---|
Microsoft | 1 |
Oracle | 2 |
Sun | 3 |
HP | 4 |
MorpheusWeb | 5 |
Tabella Ordini
NumeroOrdine | Importo | CodiceSocieta |
---|---|---|
1001 | 100 | 1 |
1002 | 200 | 2 |
1003 | 50 | 3 |
1004 | 300 | 4 |
1005 | 80 | 1 |
1006 | 120 | 2 |
SELECT
Societa,
SUM(Importo) AS Importo
COUNT(*) AS Ordini
INTO OrdiniPerSocieta,
FROM Societa
LEFT OUTER JOIN Ordini
ON Societa.Codice = Ordini.CodiceSocieta
GROUP BY
Societa
ORDER BY
COUNT(*) DESC
Il risultato è l'inserimento dei dati in una tabella chiamata OrdiniPerSocieta (se la tabella non esiste verrà creata)
La seguente query:
SELECT
Societa,
SUM(Importo) AS Importo
COUNT(*) AS Ordini
FROM OrdiniPerSocieta
Restituirà il seguente risultato
Societa | Importo | Ordini |
---|---|---|
Microsoft | 180 | 2 |
Oracle | 320 | 2 |
Sun | 50 | 1 |
HP | 300 | 1 |
MorpheusWeb | NULL | 0 |