Instruction ORDER BY PostgreSQL

Dans PostgreSQL,ORDER BYest utilisé pour organiser une ou plusieurs colonnes de données par ordre croissant (ASC) ou décroissant (DESC).

Syntaxe

ORDER BYLa syntaxe de base de la clause est la suivante :

SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];

Vous pouvez utiliser une ou plusieurs colonnes dans ORDER BY, mais vous devez vous assurer que les colonnes à trier existent.

ASCindique l'ordre croissant,DESCindique l'ordre décroissant.

Exemple

Créez la table COMPANY (Téléchargez le fichier SQL COMPANY), avec le contenu des données comme suit :

exampledb# 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)

L'exemple suivant triera les résultats par ordre croissant en fonction de la valeur du champ AGE :

exampledb=# SELECT * FROM COMPANY ORDER BY AGE ASC;

Le résultat suivant est obtenu :

 id | name  | age |                      address                       | salary 
----+-------+-----+----------------------------------------------------+--------
  6 | Kim   |  22 | South-Hall                                         |  45000
  3 | Teddy |  23 | Norway                                             |  20000
  7 | James |  24 | Houston                                            |  10000
  4 | Mark  |  25 | Rich-Mond                                          |  65000
  2 | Allen |  25 | Texas                                              |  15000
  5 | David |  27 | Texas                                              |  85000
  1 | Paul  |  32 | California                                         |  20000
(7 rows)

L'exemple suivant triera les résultats par ordre croissant en fonction de la valeur du champ NAME et de la valeur du champ SALARY :

exampledb=# SELECT * FROM COMPANY ORDER BY NAME, SALARY ASC;

Le résultat suivant est obtenu :

 id | name  | age |                      address                       | salary 
----+-------+-----+----------------------------------------------------+--------
  2 | Allen |  25 | Texas                                              |  15000
  5 | David |  27 | Texas                                              |  85000
  7 | James |  24 | Houston                                            |  10000
  6 | Kim   |  22 | South-Hall                                         |  45000
  4 | Mark  |  25 | Rich-Mond                                          |  65000
  1 | Paul  |  32 | California                                         |  20000
  3 | Teddy |  23 | Norway                                             |  20000
(7 rows)

L'exemple suivant triera les résultats par ordre décroissant en fonction de la valeur du champ NAME :

exampledb=# SELECT * FROM COMPANY ORDER BY NAME DESC;

Le résultat suivant est obtenu :

 id | name  | age |                      address                       | salary 
----+-------+-----+----------------------------------------------------+--------
  3 | Teddy |  23 | Norway                                             |  20000
  1 | Paul  |  32 | California                                         |  20000
  4 | Mark  |  25 | Rich-Mond                                          |  65000
  6 | Kim   |  22 | South-Hall                                         |  45000
  7 | James |  24 | Houston                                            |  10000
  5 | David |  27 | Texas                                              |  85000
  2 | Allen |  25 | Texas                                              |  15000
(7 rows)
Autres extensions