Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики. Максим Михайлович Чалышев
Чтение книги онлайн.

Читать онлайн книгу Oracle SQL. 100 шагов от новичка до профессионала. 20 дней новых знаний и практики - Максим Михайлович Чалышев страница 19

СКАЧАТЬ вместо названий колонок таблиц в инструкции ORDER BY мы используем порядковый номер колонки в нашем запросе – у CITYCODE он равен 1, у CITYNAME 2, у PEOPLES 3.

      Можно ли отсортировать запрос по полю, которого нет в запросе, но которое есть в таблице после инструкции 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

      Контрольные СКАЧАТЬ