Database
 sql >> Database >  >> RDS >> Database

Come ordinare in SQL

Problema:

Si desidera ordinare il risultato di una query SQL in ordine crescente o decrescente.

Esempio:

Il nostro database ha una tabella denominata salary_information con i dati nelle colonne id , first_name , last_name e monthly_earnings . Vogliamo ordinare i dipendenti in base ai loro monthly_earnings in ordine decrescente.

id nome cognome guadagno_mensile
1 Calvin Rio 3500
2 Alan Paterson 4000
3 Kurt Evan 2300
4 Alex Watkin 5500

Soluzione:

Useremo un ORDER BY clausola. Ecco la domanda:

Useremo la funzione CURRENT_DATE per ottenere la data corrente:

	SELECT
		first_name,
		last_name,
		monthly_earnings
	FROM salary_information
	ORDER BY monthly_earnings DESC

Ecco il risultato della query:

first_name cognome guadagno_mensile
Alex Watkin 5500
Alan Paterson 4000
Calvin Rio 3500
Kurt Evan 2300

Ora possiamo vedere che Alex Watkins è il primo della lista, il che significa che guadagna di più.

Discussione:

Usa un ORDER BY clausola se si desidera ordinare il set di dati in ordine crescente o decrescente. La sintassi per un ORDER BY clausola è la seguente:

SELECT col1, col2, …
FROM table
ORDER BY col1, col2, … ASC|DESC;

In quanto sopra, ASC|DESC significa che dovresti scegliere la parola chiave ASC (crescente) o DESC (decrescente) per ordinare il set di dati nel modo desiderato.

Oltre a ordinare per colonne numeriche, puoi anche ordinare per colonne di testo. Un ORDER BY La clausola ordina le colonne di testo in ordine alfabetico.

Invece del nome della colonna, puoi anche utilizzare la posizione della colonna contando da sinistra. Quindi, nel nostro esempio, invece di scrivere:

ORDER BY monthly_earnings DESC

puoi anche scrivere:

ORDER BY 3 DESC

Se vuoi ordinare la tabella dall'esempio in base al first_name colonna in ordine alfabetico (crescente), è possibile utilizzare la seguente query:

SELECT
	first_name,
	last_name,
	monthly_earnings
FROM salary_information
ORDER BY first_name ASC

Vale anche la pena notare che puoi ordinare per più colonne. Ciò è utile quando alcuni valori in una determinata colonna vengono ripetuti ed è necessario un ordinamento aggiuntivo. In questo caso, separa i nomi delle colonne con virgole nella clausola ORDER BY.

Puoi anche ordinare in ordine crescente per una colonna e in ordine decrescente per un'altra. Di seguito viene illustrata la sintassi di questa combinazione:

	ORDER BY Col1 ASC, Col2 DESC;
	

Se ometti ASC o DESC parola chiave, per impostazione predefinita viene eseguito un ordinamento crescente.