Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики. Максим Михайлович Чалышев
Чтение книги онлайн.
Читать онлайн книгу Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики - Максим Михайлович Чалышев страница 19
Можно ли отсортировать запрос по полю, которого нет в запросе, но которое есть в таблице после инструкции FROM?
Да, синтаксис SQL это допускает, и вот пример:
Контрольные вопросы и задания для самостоятельного выполнения
1. Выберите записи из таблицы CITY, где в названии города (CITYNAME) есть слог «ем», отсортируйте запрос по названию города (CITYNAME) и по популяции (PEOPLES) в обратном порядке.
2. Выберите все записи из таблицы AUTO, отсортируйте записи по цвету (COLOR) и по марке (MARK) автомобиля в обратном порядке.
Шаг 14. Ограничение на количество выбранных строк ROWNUM, TOP (n)
Введение
Иногда запросы строятся таким образом, что на экран сразу выводится множество строк.
А что если нам необходимо ограничить количество строк выводимой информации, то есть из десятков тысяч строк нам достаточно нескольких строк для анализа информации?
Теория и практика
Для решения этой задачи в разных диалектах языка SQL используются разные синтаксические конструкции: в MS SQL это конструкция TOP, в ORACLE есть специальный предикат ROWNUM, в PostgreSql, MYSQL для этого существует конструкция LIMIT.
Разберем диалект SQL ORACLE.
Конструкция ROWNUM позволит ограничить количество выводимых строк на заданную величину.
Синтаксис
Примеры
Вывести первые 5 строк из таблицы AUTO.
Рисунок 29. Запрос с ограничением строк (первые 5)
Вывести первые 5 строк из таблицы CITY, где население (PEOPLES) городов больше 300 000.
Рисунок 30. Выбрать первые 5 строк, запрос города: население больше 300 000
Важные замечания
Если использовать ROWNUM совместно с сортировкой, то необходимо прибегнуть к специальному приему, иначе ROWNUM не будет работать как нужно и запрос вернет неверные данные.
Правильно следует написать так:
Вывести первые 5 автомобилей, отсортированных по дате производства (RELEASEDT).
Ошибочный запрос:
Правильный запрос:
Вопросы учеников
Покажите, как ограничивать вывод строк в MYSQL, MS SQL и PostgreSQL.
Разберемся на примере.
Вывести первые 5 строк из таблицы CITY, где население (PEOPLES) городов больше 3000.
ORACLE SQL
MY SQL
MS SQL
PostgreSQL
Контрольные