Como parte da instrução SELECT do SQL, você pode especificar a seqüência na qual as linhas selecionadas são exibidas.
Você também pode excluir linhas duplicadas em uma seleção.
ORDER BY especifica a ordem na qual as linhas aparecem em um relatório.
Se você utilizar ORDER BY, ela deverá ser a última cláusula de toda a instrução.
Todas as colunas nomeadas após ORDER BY também deverão ser nomeadas após SELECT.
O formato da cláusula ORDER BY é:
ORDER BY columnname ASC|DESC
A palavra-chave ASC especifica que você deseja que os dados apareçam em ordem crescente;
isto é o padrão se nenhuma sequência for especificada.
A palavra-chave DESC especifica que você deseja que os dados apareçam em ordem decrescente.
A consulta a seguir produz um relatório com linhas na ordem crescente.
SELECT NAME
, JOB
, YEARS
FROM Q.STAFF
WHERE DEPT = 84
ORDER BY JOB
Aqui está o relatório:
NAME JOB YEARS
--------- ----- -----
GAFNEY CLERK 5
QUILL MGR 10
DAVIS SALES 5
EDWARDS SALES 7
Ao invés de nomear uma coluna para columnname, é possível fazer referência à coluna por sua posição na instrução SELECT, que é expressa como um número.
Sequência de Classificação
A seqüência de classificação para dados de caracteres em ordem numérica é:
- Caracteres especiais, incluindo espaços em branco
- Letras minúsculas, em ordem alfabética
- Letras maiúsculas, em ordem alfabética
- Números
- Valores nulos
A seqüência padrão para a classificação dos números está em ordem crescente.
A sequência padrão para a classificação de valores DATE, TIME, TIMESTAMP e TIMESTAMP WITH TIME ZONE é cronológica.
A seqüência de classificação para dados DBCS é determinada pelo valor interno dos dados e geralmente não é significativa.
Exemplos:
- Para listar os funcionários em ordem decrescente por salário, utilize uma consulta como a seguinte:
SELECT ID
, NAME
, SALARY
FROM Q.STAFF
ORDER BY SALARY DESC
- Para listar os funcionários em ordem crescente por sobrenome, utilize uma consulta como a seguinte:
SELECT ID
, NAME
, SALARY
FROM Q.STAFF
ORDER BY NAME
Classificando por Mais de Uma Coluna
Para ordenar por mais de uma coluna, coloque o nome ou o número da coluna em uma lista após ORDER BY.
Você poderá misturar nomes e números de colunas na mesma lista.
Se desejar ordenar por uma coluna definida, deverá utilizar seu número de coluna.
Um nome de coluna em uma cláusula ORDER BY, possivelmente seguido de ASC ou DESC, é uma especificação de classificação.
As especificações de classificação de uma lista são separadas por vírgulas.
A primeira coluna após a cláusula ORDER BY é colocada em ordem primeiro, a segunda coluna é ordenada dentro dos limites da primeira coluna ORDER BY, e assim
por diante.
Exemplos:
- Para classificar por anos em serviço, use uma consulta como a seguinte:
SELECT NAME
, JOB
, YEARS
FROM Q.STAFF
WHERE DEPT=84
ORDER BY JOB, YEARS DESC
Essa consulta produz o seguinte relatório:
NAME JOB YEARS
--------- ----- -----
GAFNEY CLERK 5
QUILL MGR 10
EDWARDS SALES 7
DAVIS SALES 5
- Para classificar por trabalho em anos, use uma consulta como a seguinte:
SELECT NAME
, JOB
, YEARS
FROM Q.STAFF
WHERE DEPT=84
ORDER BY YEARS DESC, JOB
Essa consulta produz o seguinte relatório:
NAME JOB YEARS
--------- ----- -----
QUILL MGR 10
EDWARDS SALES 7
GAFNEY CLERK 5
DAVIS SALES 5
- Para listar os funcionários em ordem decrescente por anos de serviço e, em cada ano, em ordem decrescente por salário, utilize uma consulta como a seguinte:
SELECT YEARS
, ID
, NAME
, SALARY
FROM Q.STAFF
ORDER BY YEARS DESC, SALARY DESC
- Para listar os funcionários em ordem crescente por salário no departamente, utilize uma consulta como a seguinte:
SELECT DEPT
, ID
, NAME
, SALARY
FROM Q.STAFF
ORDER BY DEPT, SALARY
Classificando as Colunas por Número de Coluna
Você não pode utilizar uma expressão como SALARY+COMM após uma instrução ORDER BY.
Para classificar por uma coluna definida por uma expressão, utilize um número que especifica a posição da coluna ' na instrução SELECT da consulta.
Por exemplo, considere a seguinte consulta:
SELECT ID
, NAME
, SALARY+COMM
FROM Q.STAFF
WHERE COMM IS NOT NULL
ORDER BY 3
Na consulta acima, SALARY+COMM é a coluna 3 na instrução SELECT, então, ORDER BY 3 especifica a classificação por aquela coluna.
Você pode utilizar mais de um número de coluna em uma lista após ORDER BY e pode utilizar nomes e números de colunas na mesma lista.
Por exemplo, para listar os funcionários em ordem descrescente por salário em um departamento, utilize uma consulta como a seguinte:
SELECT DEPT
, ID
, NAME
, SALARY
FROM Q.STAFF
ORDER BY 1, 4 DESC
© Copyright IBM Corp.