Ограничение количества выбираемых строк
Сортировка
При отсутствии дополнительных указаний результирующие строки выдаются пользователю в неотсортированном виде. С помощью предложения 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 и задает условие, которое должно быть выполнено. Условие представляет собой некоторое логическое выражение, которое может состоять из имен столбцов, выражений, констант, операторов сравнения и логических операторов. В результирующую выборку попадут только те строки таблицы, для которых заданное логическое выражение будет иметь значение ‘истина’.