0Pricing
SQL Academy · Lezione

Ordinare con ORDER BY

Ordini le righe in modo crescente o decrescente

Ordinare con ORDER BY è una lezione SQL Academy gratuita su CoddyKit. Questa è la lezione 1 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é l'ordine è importante

Per impostazione predefinita, una SELECT restituisce le righe in un ordine non garantito. Il database è libero di restituirle nella sequenza che ritiene più conveniente.

Quando serve un risultato prevedibile, come un elenco alfabetico o un feed con gli elementi più recenti in cima, è necessario richiederlo esplicitamente con ORDER BY.

-- Without ORDER BY, row order is NOT guaranteed
SELECT name, price
FROM products;

La clausola ORDER BY

ORDER BY si trova verso la fine di una query, dopo WHERE e prima di LIMIT. Indichi la colonna in base alla quale ordinare.

In questo modo i prodotti vengono ordinati alfabeticamente in base a name.

SELECT name, price
FROM products
ORDER BY name;

L'ordinamento crescente è predefinito

Se non specifica diversamente, l'ordinamento è crescente: dalla A alla Z per il testo, dal valore più piccolo al più grande per i numeri, dalla data più remota a quella più recente.

Può scrivere ASC per renderlo esplicito, ma non cambia il risultato.

-- These two queries are identical
SELECT name, price FROM products ORDER BY price;
SELECT name, price FROM products ORDER BY price ASC;

Ordinamento decrescente

Aggiunga DESC per invertire l'ordine: dalla Z alla A, dal valore più grande al più piccolo, dal più recente al più remoto.

In questo modo i prodotti più costosi vengono elencati per primi.

SELECT name, price
FROM products
ORDER BY price DESC;

Ordinamento delle date

Date e timestamp vengono ordinati cronologicamente. DESC restituisce per prime le righe più recenti, il modello classico per feed di attività e log.

SELECT id, total, created_at
FROM orders
ORDER BY created_at DESC;

Ordinamento in base a una colonna non selezionata

La colonna di ordinamento non deve necessariamente comparire nell'elenco di SELECT. Può ordinare in base a qualcosa che l'utente non visualizza.

Qui mostriamo solo il nome, ma ordiniamo in base al prezzo in modo trasparente per l'utente.

SELECT name
FROM products
ORDER BY price DESC;

Ordinamento in base alla posizione di una colonna

PostgreSQL consente di ordinare in base alla posizione di una colonna nell'elenco di SELECT. ORDER BY 2 significa "la seconda colonna selezionata".

È utile per query rapide, ma usare i nomi reali delle colonne è più chiaro e sicuro.

-- 2 refers to price (the 2nd column)
SELECT name, price
FROM products
ORDER BY 2 DESC;

Ordinamento in base a un'espressione

Può ordinare in base a un valore calcolato, non solo a una colonna memorizzata. L'espressione viene valutata per ogni riga e poi utilizzata per stabilire l'ordine.

In questo modo i prodotti vengono classificati in base al valore totale del loro inventario.

SELECT name, price, stock
FROM products
ORDER BY price * stock DESC;

Ordinamento in base a un alias

Se assegna un alias a un'espressione in SELECT, può riutilizzarlo in ORDER BY. In questo modo la query rimane leggibile.

SELECT name, price * stock AS inventory_value
FROM products
ORDER BY inventory_value DESC;

Distinzione tra maiuscole e minuscole nell'ordinamento del testo

L'ordinamento del testo segue la collation del database e le lettere maiuscole e minuscole potrebbero essere ordinate in modo diverso da quanto previsto.

Per forzare un ordinamento senza distinzione tra maiuscole e minuscole, ordini in base a una copia convertita in minuscolo della colonna usando LOWER().

SELECT name
FROM products
ORDER BY LOWER(name);

Dove si colloca ORDER BY

Ricordi l'ordine logico delle clausole:

  • FROM seleziona la tabella
  • WHERE filtra le righe
  • ORDER BY ordina ciò che rimane
  • LIMIT riduce il risultato

L'ordinamento avviene sempre dopo il filtraggio.

SELECT name, price
FROM products
WHERE price > 10
ORDER BY price DESC;

Verifica rapida

Quale query elenca per primi i prodotti più economici?

Riepilogo

Ora può controllare l'ordine delle righe:

  • ORDER BY column ordina il risultato
  • ASC (predefinito) ordina dal valore più piccolo al più grande; DESC inverte l'ordine
  • Può ordinare in base a colonne, posizioni, espressioni o alias
  • Usi LOWER() per ordinare il testo senza distinzione tra maiuscole e minuscole

Nella prossima lezione risolverà i casi di parità ordinando contemporaneamente in base a più colonne.

SELECT name, price
FROM products
ORDER BY price DESC;

Domande Frequenti

La lezione «Ordinare con ORDER BY» è gratuita?

Sì — il testo completo di «Ordinare con ORDER BY» è 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 «Ordinare con ORDER BY»?

Ordini le righe in modo crescente o decrescente 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 1 di 4.

Quanto tempo richiede la lezione «Ordinare con ORDER BY»?

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

  1. Ordinare con ORDER BY
  2. Ordinare per più colonne
  3. LIMIT e OFFSET
  4. Trovare i record Top-N
← Torna a SQL Academy