PostgreSQL - Clausola ORDER BY
Il PostgreSQL ORDER BY La clausola viene utilizzata per ordinare i dati in ordine crescente o decrescente, in base a una o più colonne.
Sintassi
La sintassi di base della clausola ORDER BY è la seguente:
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
È possibile utilizzare più di una colonna nella clausola ORDER BY. Assicurati che qualunque colonna stai utilizzando per ordinare, quella colonna dovrebbe essere disponibile nell'elenco delle colonne.
Esempio
Considera che la tabella AZIENDA ha i record come segue:
testdb# select * from COMPANY;
id | name | age | address | salary
----+-------+-----+-----------+--------
1 | Paul | 32 | California| 20000
2 | Allen | 25 | Texas | 15000
3 | Teddy | 23 | Norway | 20000
4 | Mark | 25 | Rich-Mond | 65000
5 | David | 27 | Texas | 85000
6 | Kim | 22 | South-Hall| 45000
7 | James | 24 | Houston | 10000
(7 rows)
Il seguente è un esempio, che ordinerebbe il risultato in ordine crescente per SALARY -
testdb=# SELECT * FROM COMPANY ORDER BY AGE ASC;
Ciò produrrebbe il seguente risultato:
id | name | age | address | salary
----+-------+-----+------------+--------
6 | Kim | 22 | South-Hall | 45000
3 | Teddy | 23 | Norway | 20000
7 | James | 24 | Houston | 10000
8 | Paul | 24 | Houston | 20000
4 | Mark | 25 | Rich-Mond | 65000
2 | Allen | 25 | Texas | 15000
5 | David | 27 | Texas | 85000
1 | Paul | 32 | California | 20000
9 | James | 44 | Norway | 5000
10 | James | 45 | Texas | 5000
(10 rows)
Il seguente è un esempio, che ordina il risultato in ordine crescente per NOME e STIPENDIO -
testdb=# SELECT * FROM COMPANY ORDER BY NAME, SALARY ASC;
Ciò produrrebbe il seguente risultato:
id | name | age | address | salary
----+-------+-----+--------------+--------
2 | Allen | 25 | Texas | 15000
5 | David | 27 | Texas | 85000
10 | James | 45 | Texas | 5000
9 | James | 44 | Norway | 5000
7 | James | 24 | Houston | 10000
6 | Kim | 22 | South-Hall | 45000
4 | Mark | 25 | Rich-Mond | 65000
1 | Paul | 32 | California | 20000
8 | Paul | 24 | Houston | 20000
3 | Teddy | 23 | Norway | 20000
(10 rows)
Il seguente è un esempio, che ordinerebbe il risultato in ordine decrescente per NOME -
testdb=# SELECT * FROM COMPANY ORDER BY NAME DESC;
Ciò produrrebbe il seguente risultato:
id | name | age | address | salary
----+-------+-----+------------+--------
3 | Teddy | 23 | Norway | 20000
1 | Paul | 32 | California | 20000
8 | Paul | 24 | Houston | 20000
4 | Mark | 25 | Rich-Mond | 65000
6 | Kim | 22 | South-Hall | 45000
7 | James | 24 | Houston | 10000
9 | James | 44 | Norway | 5000
10 | James | 45 | Texas | 5000
5 | David | 27 | Texas | 85000
2 | Allen | 25 | Texas | 15000
(10 rows)