SQL SELECT TOP: come selezionare record in modo mirato
SQL SELECT TOP ti consente di ridurre le analisi dei dati ai record selezionati nelle colonne e nelle tabelle in cui vuoi eseguire la ricerca. In presenza di database molto complessi, limitando il numero di record da restituire ottimizzi le prestazioni e risparmi risorse.
Cos’è SQL SELECT TOP?
Per il linguaggio di database SQL hai a disposizione diversi strumenti come i comandi SQL, gli operatori SQL e le funzioni SQL. A seconda delle necessità puoi quindi eseguire ricerche nei record, analizzarli, modificarli o manipolarli. In particolare, in presenza di record molto grandi con migliaia di voci è utile limitare il numero di risultati restituiti per effettuare interrogazioni efficienti. A questo scopo utilizza il comando SQL SELECT TOP.
Combinando SQL SELECT con la parola chiave TOP si ottiene una funzione che consente di limitare i dati risultanti al numero desiderato. I risultati vengono così ridotti alle voci più rilevanti, ottimizzando la leggibilità e l’efficacia dell’analisi. Tieni però presente che SQL SELECT TOP non funziona in tutti i database. Sono quindi disponibili i comandi alternativi LIMIT, FETCH FIRST e ROWNUM.
Scopri le nozioni basilari e le funzioni più importanti nella nostra introduzione a SQL con esempi.
La sintassi di SELECT TOP
La semplice sintassi di SELECT TOP si presenta come segue:
SELECT TOP n ColonnaA, ColonnaB, …
FROM tabellasqlSi usano i parametri seguenti:
SELECT TOP: con il comandoSELECT TOPdefinisci il numero di risultati e le colonne da cui richiamare i record. Indica il nome della colonna dopo il numero di risultati desiderato oppure inserisci un asterisco*per selezionare tutti i record della tabella.FROM: definisce in quale tabella controllare le colonne e i record.
Servendoti di altre clausole e operatori opzionali puoi precisare i risultati restituiti:
WHERE: la clausola SQL WHERE ti consente di definire le condizioni che devono essere soddisfatte dai record rilevanti. I risultati irrilevanti vengono esclusi.ORDER BY: con il comando SQL ORDER BY e le istruzioniASCoDESCstabilisci se i risultati devono essere disposti in ordine crescente o decrescente.
Applicazioni dell’operatore SELECT TOP
In linea di principio SQL SELECT TOP serve per confrontare i dati, analizzarli o filtrarli per dimensioni e quantità. Tra le applicazioni pratiche per diversi settori troviamo tra l’altro:
- Richiamare i clienti con il numero di ordini più elevato
- Filtrare i primi dieci team con le campagne di marketing di maggior successo
- Visualizzare le 50 transazioni più grandi per controllare i movimenti finanziari sospetti
- Visualizzare i dieci siti web con il maggior numero di accessi in un mese
- Analizzare i clienti più promettenti sulla base di dati demografici, geografici e finanziari
- Eseguire controlli di magazzino richiamando i dieci prodotti con le scorte più basse
- Analizzare il comportamento d’acquisto in base ai prodotti più ordinati o visualizzati
- Determinare i fattori di rischio nei pazienti sulla base di risultati di test, sintomi o malattie pregresse rilevanti
- Filtrare i fornitori con i tempi o i percorsi di consegna più brevi
Scopri le proposte personalizzate di server e hosting per i tuoi progetti web e database con l’hosting SQL server di IONOS. Affidati alla protezione e alla sicurezza dei dati secondo gli standard europei.
- 1 Gbps di larghezza di banda e traffico illimitato
- Disponibilità del 99,99% e certificazione ISO
- Assistenza 24/7 e consulente personale
Esempi pratici di SQL SELECT TOP
Per mostrare come funziona l’istruzione SQL SELECT TOP, te la presentiamo servendoci di due esempi pratici.
Visualizzare gli ultimi dieci ordini
In una tabella “Ordini” vogliamo visualizzare solo gli ultimi dieci ordini. Procediamo come indicato di seguito:
SELECT TOP 10 *
FROM Ordini
ORDER BY DataOrdine DESCsqlRicorrendo ad aggiunte come ORDER BY puoi ordinare i risultati secondo parametri come quantità dell’ordine, prezzo o altre caratteristiche.
Clienti con il maggior numero di ordini
In una tabella “Ordini” vogliamo visualizzare solo i primi dieci clienti con il maggior numero di ordini. Procediamo come indicato di seguito:
SELECT TOP 10 NomeCliente, IdCliente, COUNT(*) AS QuantitàOrdineTotale
FROM Ordini
GROUP BY NomeCliente, IDCliente
ORDER BY QuantitàOrdineTotale DESCsqlCon la funzione COUNT puoi sommare tutti gli ordini dei clienti con i relativi nomi e ID cliente per associarli agli ordini più frequenti.
Alternative a SQL SELECT TOP
A seconda del sistema che usi per i tuoi database può essere necessaria un’istruzione alternativa per restringere i risultati. Controlla quindi se il tuo sistema di database supporta SQL SELECT TOP o un’altra funzione. Di seguito trovi un prospetto di SQL SELECT TOP e delle alternative in base al sistema di gestione di database (DMS):
| Funzione SQL | DMS | Funzione |
|---|---|---|
SELECT TOP
|
SQL Server | Limita i risultati a n |
LIMIT
|
MySQL | Limita i risultati a n |
ROWNUM oppure ROWS
|
Oracle | Definisce il numero di righe del risultato |
OFFSET + FETCH
|
Oracle, MySQL | Integrano la clausola ORDER BY e definiscono il numero di record nei risultati
|
FETCH FIRST n ROWS ONLY
|
Oracle | Limita il numero di righe del risultato a n |

