Возвращение результатов запроса в заданном порядке (ORDER BY)
Задача
Требуется представить имена, должности и заработные платы служащих 10-го отдела и упорядочить их согласн заработным платам (от наименьшей к наибольшей).
Решение
Используйте оператор ORDER BY:
select e.ename, e.job, e.sal
from emp e
where 1=1
and e.deptno = 10
order by e.sal asc;
ENAME JOB SAL
---------- ---------- ---
MILLER CLERK 1300
CLARK MANAGER 2450
KING PRESIDENT 5000
Обсуждение
Оператор ORDER BY позволяет упорядочивать строки результирующего множества. В нашем примере строки сортируются по столбцу SAL в возрастающем порядке. По умолчанию ORDER BY осуществляет сортировку по возрастанию, поэтому оператор ASC является необязательным. Чтобы обеспечить сортировку по убыванию, используется оператор DESC.
select e.ename, e.job, e.sal
from emp e
where 1=1
and e.deptno = 10
order by e.sal desc;
ENAME JOB SAL
---------- ---------- ---
KING PRESIDENT 5000
CLARK MANAGER 2450
MILLER CLERK 1300
Имя столбца, по которому должна проводиться сортировка, задавать необязательно. Можно указать порядковый номер столбца. нумерация столбцов в списе оператора SELECT начинавется с 1 и осуществляется в направлении слева направо. Например:
select e.ename, e.job, e.sal
from emp e
where 1=1
and e.deptno = 10
order by 3 desc;
ENAME JOB SAL
---------- ---------- ---
KING PRESIDENT 5000
CLARK MANAGER 2450
MILLER CLERK 1300
Число 3 в операторе ORDER BY данного примера соответствует третьему столбцу списка оператора SELECT, т.е. столбцу SAL.