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 tabella
sqlSi usano i parametri seguenti:
SELECT TOP
: con il comandoSELECT TOP
definisci 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 istruzioniASC
oDESC
stabilisci 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.
- Traffico illimitato e fino a 1 Gbit/s di larghezza di banda
- Storage SSD NVMe veloce
- Plesk Web Host Edition incluso
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 DESC
sqlRicorrendo 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 DESC
sqlCon 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 |