Порядок строк, возвращаемых в результате запроса, не определен. Отсортировать строки можно с помощью предложения ORDER BY. Для сортировки можно задать выражение или позицию столбца в списке предложения SELECT.
Пример: Вывод из таблицы S_EMP фамилии, номера отдела и даты начала работы каждого служащего. Результат сортируется по фамилиям.
LAST_NAME ----------------------- |
DEPT_ID ---------------- |
START_DATE ----------------- |
biri | 43 | 07-APR-90 |
Catchpole | 43 | 09-FEB-92 |
Chang | 44 | 30-NOV-90 |
Dancs | 45 | 17-MAR-91 |
Dumas | 35 | 09-OCT-91 |
Giljum | 32 | 18-JAN-92 |
Havel | 45 | 27-FEB-91 |
По умолчанию строки сортируются в порядке возрастания:
Порядок сортировки, принятый по умолчанию, меняется на противоположный с помощью слова DESC после имени столбца в предложении ORDER BY.
Пример: Вывод из таблицы S_EMP фамилии, номера отдела и даты найма каждого служащего. Результат сортируется таким образом, чтобы служащие, нанятые последними, возглавляли список.
LAST_NAME | DEPT_ID | START_DATE |
----------------------- | ------------------- | ---------------- |
... | ||
Urquhart | 41 | 18-JAN-91 |
Chang | 44 | 30-NOV-90 |
Patel | 34 | 17-OCT-90 |
Menchu | 42 | 14-MAY-90 |
... | ||
25 rows Selected. |
В предложении ORDER BY можно указать псевдоним столбца.
Еще один способ сортировки результатов запроса - это сортировка по позиции. Он особенно полезен при сортировке по длинному выражению. Вместо повторного ввода выражения можно указать его позицию в списке SELECT
Сортировать результат можно и по нескольким столбцам. Предельным количеством столбцов сортировки является количество столбцов таблицы. Столбцы указываются в предложении ORDER BY через запятые. Для изменения порядка сортировки по какому-либо столбцу на обратный следует задать квалификатор DESC после его имени или позиции. Сортировать можно и по столбцам, не входящим в список SELECT.
Пример: Вывод фамилии, номера отдела и заработной платы всех служащих. Результат сортируется по номерам отделов, а внутри отделов - в порядке убывания заработной платы.
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 |
... |
Ограничение количества выбираемых строк.
Ограничить набор строк, возвращаемых в результате запроса, можно с помощью предложения WHERE. Предложение WHERE следует сразу за предложением FROM и задает условие, которое должно быть выполнено. Условие состоит из имен столбцов, выражений, констант и операторов сравнения.
Пример: Запрос для вывода имен, фамилий и должностей, служащих с фамилией “Magee”.
В символьных строках различаются символы верхнего и нижнего регистров. Поэтому, для совпадения, фамилия должна быть написана строчными буквами и начинаться с заглавной буквы.
Оператор BETWEEN.
Оператор BETWEEN используется для проверки вхождения значения в интервал значений (включая границы интервала). Нижняя граница должна быть указана первой.
Пример: Вывод имени, фамилии и даты найма служащих, нанятых между 9 мая и 17 июня 1991 года включительно.
Оператор IN.
Для проверки принадлежности значений к заданному списку используется оператор IN.
Пример: Вывод номера, названия отдела и номера региона для отделов в регионах 1 и 3.
Оператор LIKE.
Используется для поиска строковых значений с помощью метасимволов (wildcards). Условия для поиска могут содержать символьные литералы или числа:
Пример: Вывод всех фамилий служащих на букву “М”.
Оператор LIKE может использоваться в качестве быстрого эквивалента некоторых операций BETWEEN.
Пример: Вывод фамилий и дат найма для служащих, принятых на работу в 1991 году.
В критерии поиска символы ‘%’ и ‘_’ можно сочетать с литералами в любой комбинации.
Пример: Вывод фамилий, второй буквой которых является “а”
Параметр ESCAPE.
Поиск символов ‘%’ и ‘_’ требует использования идентификатора ESCAPE (отменяющего специальное значение метасимволов).
Пример: Вывод названий фирм, содержащих сочетание “X_Y”.
Оператор IS NULL.
Неопределенные значения проверяются с помощью оператора IS NULL. Пользоваться оператором “=“ для сравнения с неопределенными значениями не следует, так как неопределенное значение не может быть равно или не равно какому-то другому.
Пример: Вывод номера, наименования и кредитного рейтинга всех клиентов, не имеющих торгового представителя.
![]() |
Для закрепления материала рекомендуется выполнить Практическое задание 2. |