depois de uma consulta ter produzido uma tabela de saída (após a lista de seleção ter sido processada), ela pode opcionalmente ser ordenada. Se a ordenação não for escolhida, as linhas serão devolvidas numa ordem não especificada. A ordem real nesse caso vai depender da varredura e juntar tipos de plano e a ordem no disco, mas não deve ser invocado. Uma ordenação de saída particular só pode ser garantida se o passo de ordenação for explicitamente escolhido.
a ordem por cláusula especifica a ordem de ordenação:
SELECT select_list FROM table_expression ORDER BY column1 ...]
column1, etc., consulte seleccionar as colunas da lista. Estes podem ser o nome de saída de uma coluna (ver secção 7.3.2) ou o número de uma coluna. Alguns exemplos:
SELECT a, b FROM table1 ORDER BY a;SELECT a + b AS sum, c FROM table1 ORDER BY sum;SELECT a, sum(b) FROM table1 GROUP BY a ORDER BY 1;
Como uma extensão para o SQL padrão, o PostgreSQL também permite a ordenação por expressões arbitrárias:
SELECT a, b FROM table1 ORDER BY a + b;
Referências para nomes de coluna da cláusula FROM que não estão presentes na lista de seleção são também permitidos:
SELECT a FROM table1 ORDER BY b;
Mas essas extensões não funcionam em consultas que envolvam UNION, INTERSECT ou EXCEPT, e não são portáteis para outros bancos de dados SQL.
cada especificação de coluna pode ser seguida por uma ASC ou DESC opcional para definir a direcção da ordenação para ascendente ou descendente. A ordem ASC é o padrão. Ordem ascendente coloca valores menores em primeiro lugar, onde “menor” é definido em termos do operador <. Similarmente, a ordem descendente é determinada com o operador >.
se for especificada mais do que uma coluna de ordenação, os itens posteriores são usados para ordenar linhas que são iguais sob a ordem imposta pelas colunas de ordenação anteriores.