Ограничение количества выбираемых строк

Сортировка

При отсутствии дополнительных указаний результирующие строки выдаются пользователю в неотсортированном виде. С помощью предложения ORDER BY Вы можете указать столбец (или список столбцов), по значению которого Вы хотите отсортировать данные. При этом в случае сортировки в порядке возрастания числа выводятся от меньшего к большему, даты – от более ранних к более поздним, символьные значения – в алфавитном порядке. Неопределенные значения при сортировке по возрастанию выводятся последними, при сортировке по убыванию – первыми.

Сортировка по возрастанию задается с помощью ключевого слова ASC, по убыванию – с помощью ключевого слова DESC. Если ни одно из этих ключевых слов не указано, сортировка проводится по возрастанию. В предложении ORDER BY можно указывать не только имя столбца, но и его псевдоним.

Пример: Вывод из таблицы s_emp фамилии, номера и даты найма каждого служащего. Результат сортируется таким образом, чтобы служащие, нанятые последними, возглавляли список:

SELECT last_name, dept_id, start_date

FROM s_emp

ORDER BY start_date DESC;

Результат:

LAST_NAME DEPT_ID START_DATE

--------------- --------- --------

Catchpole 44 09.02.92

Maduro 41 07.02.92

Nguyen 34 22.01.92

Giljum 32 18.01.92

Dumas 35 09.10.91

Patel 42 06.08.91

Newman 43 21.07.91

Nagayama 31 17.06.91

25 rows selected.

Еще один способ сортировки результатов запроса – это сортировка по позиции столбца. Он особенно полезен при сортировке по длинному выражению. Вместо повторного ввода выражения можно указать его позицию в списке SELECT.

Пример: Запрос из предыдущего примера можно записать следующим образом

SELECT last_name, dept_id, start_date

FROM s_emp

ORDER BY 3 DESC;

Сортировать результат можно и по нескольким столбцам. Предельным количеством столбцов сортировки является количество столбцов таблицы. Столбцы указываются в предложении ORDER BY через запятые. Для изменения порядка сортировки по какому-либо столбцу на обратный следует задать ключевое слово DESC после его имени или позиции. Сортировать можно и по столбцам, не входящим в список SELECT.

Пример: Вывод фамилии, номера отдела и заработной платы всех служащих. Результат сортируется по номерам отделов, а внутри отделов – в порядке убывания заработной платы:

SELECT last_name, dept_id, salary

FROM s_emp

ORDER BY 2, 3 DESC;

Результат:

LAST_NAME DEPT_ID SALARY

-------------- --------- ---------

Quick-To-See 10 1450

Nagayama 31 1400

Magee 31 1400

Giljum 32 1490

Sedeghi 33 1515

Nguyen 34 1525

Patel 34 795

Dumas 35 1450

25 rows selected.

Ограничить набор строк, возвращаемых в результате запроса, можно с помощью предложения WHERE. Ограничение количества выбираемых строк с помощью предложения WHERE соответствует операции выборки реляционной алгебры.

Предложение WHERE следует сразу за предложением FROM и задает условие, которое должно быть выполнено. Условие представляет собой некоторое логическое выражение, которое может состоять из имен столбцов, выражений, констант, операторов сравнения и логических операторов. В результирующую выборку попадут только те строки таблицы, для которых заданное логическое выражение будет иметь значение ‘истина’.