Редко бывают случаи, когда вам нужно получить все записи из данной таблицы. Вместо этого вы часто обнаруживаете, что извлекаете записи, которые соответствуют определенному условию или находятся в заданном диапазоне.
В этом посте мы узнаем, как использовать оператор BETWEEN в базе данных Oracle, который позволяет нам выбирать строки со значениями, соответствующими определенному диапазону из таблицы базы данных.
Оператор Oracle МЕЖДУ
Оператор BETWEEN в Oracle позволяет указать условие поиска при использовании операторов DML, таких как SELECT, INSERT, UPDATE или DELETE.
Когда мы используем оператор BETWEEN с оператором SELECT, выбираются только строки, значения которых находятся в пределах указанного диапазона.
Мы выражаем синтаксис оператора BETWEEN, как показано ниже:
выражение МЕЖДУ нижний_диапазон И верхний_диапазон;
В этом случае выражение определяет целевое выражение, значение диапазона которого должно быть проверено.
Предположим, мы хотим получить все строки из таблицы сотрудника, чья зарплата находится в заданном диапазоне. В этом случае столбец зарплаты называется выражением.
Ниже приведен псевдосинтаксис предыдущей аналогии:
ВЫБРАТЬ КОЛОННЫ КУДА зарплата МЕЖДУ значение_1 И значение_2;Параметры нижний_диапазон и верхний_диапазон используются для установки наименьшего и наибольшего значений, включаемых в диапазон.
Параметры нижний_диапазон и верхний_диапазон связаны оператором И.
Как только мы выполняем оператор, оператор BETWEEN возвращает TRUE для любого значения, которое больше или равно наименьшему_диапазону и меньше или равно верхнему_диапазону.
В большинстве случаев оператор BETWEEN используется с предложением WHERE, которое позволяет ввести условие поиска.
Примеры операторов Oracle BETWEEN
В этом разделе мы приведем несколько примеров использования оператора BETWEEN в базе данных Oracle.
Предположим, у нас есть таблица, как показано на рисунке:
ВЫБРАТЬ EMPLOYEE_ID , ИМЯ , ЭЛЕКТРОННОЕ ПИСЬМО , ЗАРПЛАТА ОТ СОТРУДНИКИ;Результирующая таблица:
Пример 1. Проверка числового диапазона с помощью оператора BETWEEN
Предположим, мы хотим определить всех сотрудников, чья зарплата колеблется от 20 000 до 50 000.
Мы можем выполнить оператор SELECT с оператором BETWEEN в сочетании с предложением WHERE, как показано ниже:
ВЫБРАТЬ EMPLOYEE_ID , ИМЯ , ЭЛЕКТРОННОЕ ПИСЬМО , ЗАРПЛАТАОТ СОТРУДНИКИ
КУДА ЗАРПЛАТА МЕЖДУ 20000 И 50000 ;
Предыдущий запрос должен вернуть сотрудников, зарплата которых находится в этом диапазоне, как показано ниже:
Здесь у нас есть только одна строка, соответствующая этому диапазону зарплат.
Пример 2. Тестирование диапазона дат с помощью оператора BETWEEN
Мы также можем использовать оператор BETWEEN для поиска записей, соответствующих определенному диапазону дат.
В качестве примера возьмем следующую таблицу:
ВЫБРАТЬ ИМЯ , ЭЛЕКТРОННОЕ ПИСЬМО , ДАТА ПРИЕМА НА РАБОТУ , ЗАРПЛАТАОТ СОТРУДНИКИ;
Предположим, мы хотим определить всех сотрудников, дата найма которых находится в заданном диапазоне.
Мы также можем соединить оператор BETWEEN с предложением WHERE, как показано ниже:
ВЫБРАТЬ ИМЯ , ЭЛЕКТРОННОЕ ПИСЬМО , ДАТА ПРИЕМА НА РАБОТУ , ЗАРПЛАТАОТ СОТРУДНИКИ
КУДА ДАТА ПРИЕМА НА РАБОТУ МЕЖДУ ДАТИРОВАТЬ '2006-01-01' И ДАТИРОВАТЬ '2007-01-01' ;
В этом случае мы проверяем условие поиска, где значение столбца найма_даты находится между 2006-01-01 и 2007-01-01.
Это должно вернуть совпадающие строки, как показано ниже:
Обратите внимание, что все значения находятся в диапазоне указанной даты.
Пример 3: Использование оператора BETWEEN с предложением Order By
Oracle также позволяет нам использовать предложения, такие как ORDER BY или GROUP BY, для упорядочения результирующих значений в заданном порядке.
Например, мы можем упорядочить предыдущую таблицу на основе значения заработной платы, начиная с самого высокого до самого низкого.
ВЫБРАТЬ ИМЯ , ЭЛЕКТРОННОЕ ПИСЬМО , ДАТА ПРИЕМА НА РАБОТУ , ЗАРПЛАТАОТ СОТРУДНИКИ
КУДА ДАТА ПРИЕМА НА РАБОТУ МЕЖДУ ДАТИРОВАТЬ '2006-01-01' И ДАТИРОВАТЬ '2007-01-01'
ПОРЯДОК К ЗАРПЛАТА DESC ;
В результате таблица выглядит следующим образом:
Заключение
В этом руководстве мы рассмотрели использование оператора BETWEEN в базах данных Oracle, который позволяет нам искать строки, значение которых соответствует заданному диапазону.