Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Оператор BETWEEN


Оператор BETWEEN

Оператор BETWEEN выполняет булеву проверку значения на соответствие диапазону значений. Оператор возвращает TRUE, если значение входит в диапазон, и FALSE, если значение не входит в диапазон. Если любое значение диапазона равно NULL (неизвестно), то результат будет NULL.

Оператор EXISTS семантически эквивалентен оператору ANY/SOME.


Синтаксис SQL 2003

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 в том виде, как это описано выше.

Источник