Основы программирования в СУБД Oracle. SQL+PL/SQL.. О. А. Ткачев
Чтение книги онлайн.

Читать онлайн книгу Основы программирования в СУБД Oracle. SQL+PL/SQL. - О. А. Ткачев страница 11

СКАЧАТЬ target="_blank" rel="nofollow" href="#image27_5fb647dd88201e000727b41f_jpg.jpeg"/>

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

      Синтаксис:

      {имя столбца} BETWEEN V_MIN AND V_MAX

      V_MIN – нижняя граница диапазона;

      V_MAX – верхняя граница диапазона

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

      ({имя столбца}> = V_MIN) AND ({имя столбца} <= V_MAX)

      Пример 2.16. Вывести данные о сотрудниках, зарплата которых находится в определенном диапазоне

      SELECT employee_id, first_name, last_name, department_id

      FROM Employees

      WHERE salary BETWEEN 6000 AND 8000;

      Для определения границ диапазона можно использовать вещественные числа, даты и строки.

      Пример 2.17. Получить данные о сотрудниках, у которых значение комиссионных находится в определенном диапазоне

      SELECT employee_id, first_name, last_name, department_id,

      salary, commission_pct

      FROM Employees

      WHERE commission_pct BETWEEN 0.15 AND 0.2;

      Пример 2.18. Получить данные о договорах, дата заключения которых лежит в определенном диапазоне

      SELECT * FROM Orders

      WHERE order_date BETWEEN ′ 01.09.2019 ′

      AND ′ 30.09.2019 ′;

      Оператор BETWEEN можно использовать совместно с логическим оператором NOT.

      Пример 2.19. Получить данные о договорах, дата заключения которых не лежит в определенном диапазоне

      SELECT * FROM Orders

      WHERE order_date NOT BETWEEN ′ 01.09.2019 ′ AND ′ 30.09.2019 ′;

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

      На первый взгляд может показаться, что данную задачу должен решить следующий запрос.

      Пример 2.20. Получить данные о сотрудниках, имена которых начинаются с букв в диапазоне с A по B (содержит ошибку)

      SELECT employee_id, first_name, last_name, department_id

      FROM Employees

      WHERE first_name BETWEEN ′ A ′ AND ′ B ′;

      Но анализ результатов этого запроса показывает, что данные о сотрудниках, чьи имена начинаются на букву B, в результат выполнения запроса не попали, хотя такие сотрудники есть, например Bruce.

      Это происходит потому, что значение строки B меньше значения строки Bruce, поэтому данные о сотрудниках, чьи имена начинаются на букву B, в результат выполнения запроса не попали. Эту проблему можно решить, указывая в качестве верхнего диапазона следующую букву.

      Пример 2.21. Получить данные о сотрудниках, имена которых начинаются с букв в диапазоне с A по B

      SELECT employee_id, first_name, last_name, department_id

      FROM Employees

      WHERE first_name BETWEEN ′ A ′ AND ′ C ′;

      Оператор IN

      Оператор СКАЧАТЬ