ORDER BY con una o più colonne
Ordini i risultati in senso crescente o decrescente, ordini per più colonne e controlli la posizione dei NULL con NULLS FIRST / NULLS LAST
ORDER BY con una o più colonne è una lezione SQL Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento SQL Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso SQL Academy include 4 lezioni in totale.
Perché è necessario ORDER BY
Una tabella SQL è un insieme non ordinato. Senza ORDER BY, il database può restituire le righe in qualsiasi ordine e tale ordine può cambiare tra un'esecuzione e l'altra. Se l'ordine è importante nell'interfaccia o nel report, specifichi esplicitamente l'ordinamento.
Ordinamento per una colonna
L'ordinamento predefinito è crescente:
SELECT id, email FROM users ORDER BY created_at; -- oldest first
SELECT id, email FROM users ORDER BY created_at ASC;
SELECT id, email FROM users ORDER BY created_at DESC; -- newest firstOrdinamento per più colonne
Elencare le colonne in ordine di priorità. La seconda colonna risolve i casi di parità nella prima:
SELECT first_name, last_name, age
FROM users
ORDER BY last_name ASC, first_name ASC, age DESC;Ordinamento per espressione
È possibile ordinare in base a qualsiasi espressione:
SELECT email, full_name
FROM users
ORDER BY LENGTH(email) DESC, email ASC;Ordinamento per alias o posizione
È possibile fare riferimento a un alias dell'elenco SELECT o alla sua posizione, numerata a partire da 1:
SELECT id, total * 0.9 AS discounted
FROM orders
ORDER BY discounted DESC; -- by alias
SELECT id, total
FROM orders
ORDER BY 2 DESC; -- by position (avoid in code — fragile)NULLS FIRST / NULLS LAST
Controlli la posizione dei valori NULL:
-- Default: NULLs LAST when ASC, FIRST when DESC
SELECT * FROM users ORDER BY last_login_at DESC NULLS LAST;
SELECT * FROM users ORDER BY last_login_at ASC NULLS FIRST;Ordinamenti stabili e criteri di spareggio
Se più righe hanno lo stesso valore per la chiave di ordinamento, il database può restituirle in qualsiasi ordine. Aggiunga la chiave primaria come criterio di spareggio per ottenere risultati deterministici:
SELECT * FROM orders
ORDER BY created_at DESC, id DESC;ORDER BY e indici
Se esiste un indice sulle colonne di ORDER BY, il database può leggere le righe nell'ordine corretto senza eseguire un passaggio di ordinamento.
-- With index on created_at DESC, this can use the index directly:
SELECT * FROM events ORDER BY created_at DESC LIMIT 100;CASE in ORDER BY
Ordinamento personalizzato con CASE:
-- Show priority orders first:
SELECT * FROM orders
ORDER BY
CASE status
WHEN 'urgent' THEN 0
WHEN 'normal' THEN 1
ELSE 2
END,
created_at DESC;ORDER BY viene eseguito dopo WHERE
ORDER BY opera sul risultato di WHERE/GROUP BY/HAVING. Prima avviene il filtraggio, poi l'ordinamento.
Non ordini tabelle enormi senza LIMIT
Ordinare un risultato di un miliardo di righe è costoso. Se servono solo le prime N righe, aggiunga LIMIT: il planner può passare a una strategia Top-N.
SELECT * FROM events ORDER BY created_at DESC LIMIT 50;Riepilogo
ORDER BY rende deterministici i risultati.
- ASC / DESC per ogni colonna
- Più colonne per risolvere i casi di parità
- NULLS FIRST / LAST quando necessario
- Abbini sempre LIMIT agli ordinamenti di grandi dimensioni
Verifica rapida
Qual è la direzione di ordinamento predefinita in SQL?
Impara SQL con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 46
- Lezioni
- 183
Domande Frequenti
La lezione «ORDER BY con una o più colonne» è gratuita?
Sì — il testo completo di «ORDER BY con una o più colonne» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso SQL Academy, passa a CoddyKit PRO. Il corso SQL Academy include 4 lezioni in totale.
Cosa imparerò in «ORDER BY con una o più colonne»?
Ordini i risultati in senso crescente o decrescente, ordini per più colonne e controlli la posizione dei NULL con NULLS FIRST / NULLS LAST Eserciti SQL Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare SQL Academy?
Non è richiesta alcuna esperienza precedente. SQL Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «ORDER BY con una o più colonne»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione SQL Academy?
Sì. Ogni lezione SQL Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Selezionare colonne ed espressioni
- Filtri WHERE: operatori di confronto e logici
- ORDER BY con una o più colonne
- Basi di LIMIT, OFFSET e paginazione