Оператор BETWEEN
Оператор BETWEEN выполняет булеву проверку значения на соответствие диапазону значений. Оператор возвращает TRUE, если значение входит в диапазон, и FALSE, если значение не входит в диапазон. Если любое значение диапазона равно NULL (неизвестно), то результат будет NULL.
Оператор EXISTS семантически эквивалентен оператору ANY/SOME.
SELECT *
WHERE выражение [NOT] BETWEEN нижняя_граница AND верхняя_граница
WHERE выражение
Проверяет скалярное выражение (например, столбец) на соответствие диапазону значений, лежащих между верхней_границей и нижней_границей. [NOT] BETWEEN нижняя _граница AND верхняя_граница
Сравнивает выражение с нижней_границей и верхней_границей. Сравнение включает крайние значения, то есть это все равно что «где выражение [не] больше или равно нижней_границе и меньше или равно верхней_границей>.
Оператор BETWEEN используется для проверки выражения на соответствие диапазону значений. Оператор BETWEEN может использоваться с любым типом данных, за исключением BLOB, CLOB, NCLOB, REF и ARRAY.
Например, нам нужно увидеть номера произведений (title_id), для которых объемы продаж с начала года (ytd_sales) лежат в диапазоне от 10000 до 20000.
SELECT title_id
FROM titles
WHERE ytcLsales BETWEEN 10000 AND 20000
Оператор BETWEEN включает границы диапазона. В данном случае в результат будут включены значения 10000 и 20000. Если вам нужно провести поиск, не включая границы диапазона, вы должны использовать символы «больше» (>) и меньше (<).
SELECT title_id
FROM titles
WHERE ytd.sales > 10000 AND ytd_sales < 20000
Оператор NOT позволяет проводить поиск за пределами диапазона, указанного в операторе BETWEEN. Так, вы можете найти номера всех произведений (title_id), которые публиковались не в 2003 году.
SELECT title_id
FROM titles
WHERE pub.date NOT BETWEEN "01-JAN-2003" AND "31-DEC-2003"
Советы и хитрости программирования
Некоторые программисты очень привередливо относятся к тому, как в предложениях WHERE используется ключевое слово AND. Чтобы незнакомый с кодом человек не подумал, что оператор AND, используемый в операторе BETWEEN, является логическим оператором, вы можете заключить все предложение BETWEEN в скобки.
SELECT title_id
FROM titles
WHERE (ytd_sales BETWEEN’ 10000 AND 20000) AND pubdate >= ‘1991-06-12 00:00:00.000’
Различия в реализациях на разных платформах
Все платформы поддерживают оператор BETWEEN в том виде, как это описано выше.