SQL условие BETWEEN

В этом учебном материале вы узнаете, как использовать SQL условие BETWEEN с синтаксисом и примерами.

Описание

SQL условие BETWEEN позволяет легко проверить, находится ли выражение в диапазоне значений (включительно). Его можно использовать в операторе SELECT, INSERT, UPDATE или DELETE.

Синтаксис

Синтаксис для условия BETWEEN в SQL:

expression BETWEEN value1 AND value2;

Параметры или аргументы

expression
Столбец или расчет.
value1 и value2
Эти значения создают инклюзивный диапазон, с которым сравнивается expression.

Примечание

Условие SQL BETWEEN будет возвращать записи, где выражение находится в диапазоне значений value1 и value2 (включительно).

Пример — использование условия BETWEEN с числовыми значениями

Давайте рассмотрим пример использования условия BETWEEN для получения значений в числовом диапазоне.

В этом примере у нас есть таблица suppliers со следующими данными:

supplier_idsupplier_namecitystate
100YandexMoscowMoscow
200GoogleLansingMichigan
300OracleRedwood CityCalifornia
400BingRedmondWashington
500YahooSunnyvaleWashington
600DuckDuckGoPaoliPennsylvania
700QwantParisIle de France
800FacebookMenlo ParkCalifornia
900Electronic ArtsSan FranciscoCalifornia

Выполните следующий оператор SELECT:

Будет выбрано 4 записи. Вот результаты, которые вы должны получить:

supplier_idsupplier_namecitystate
300OracleRedwood CityCalifornia
400BingRedmondWashington
500YahooSunnyvaleWashington
600DuckDuckGoPaoliPennsylvania

В этом примере возвращаются все строки из таблицы suppliers, где supplier_id находится в диапазоне от 300 до 600 (включительно). Это эквивалентно следующему запросу SELECT:

Пример — использование условия BETWEEN со значениями даты

Даты могут быть несколько сложными в SQL, и то, как вы используете условие BETWEEN с датами, зависит от базы данных, которую вы используете (т.е. Oracle, SQL Server, MySQL и т.д.). Мы покажем вам пример для каждой из основных технологий баз данных. Итак, начнем.

В этом примере у нас есть таблица orders и следующими данными:

order_idcustomer_idorder_date
170002019/06/18
250002019/06/18
380002019/06/19
440002019/06/20
5NULL2019/07/01

Введите один из следующих операторов SQL, в зависимости от базы данных, которую вы используете.
Для SQL Server, PostgreSQL и SQLite:

Для Oracle (используйте функцию TO_DATE):

Для MySQL и MariaDB (используйте функцию CAST):

Будет выбрано 3 записи. Вот результаты, которые вы получите:

order_idcustomer_idorder_date
380002019/06/19
440002019/06/20
5NULL2019/07/01

В этом примере будут возвращены все записи из таблицы orders, где значение order_date находится между 19 июня 2019 г. и 1 июля 2019 г. (включительно).

Пример — использование оператора NOT с условием BETWEEN

Условие BETWEEN может использоваться с оператором NOT для создания условия NOT BETWEEN. Давайте рассмотрим пример, который показывает, как использовать условие NOT BETWEEN в запросе.

В этом примере у нас есть таблица customer, содержащая следующие данные:

customer_idfirst_namelast_namefavorite_website
4000JustinBiebergoogle.com
5000SelenaGomezbing.com
6000 MilaKunisyahoo.com
7000TomCruiseoracle.com
8000JohnnyDeppNULL
9000RussellCrowegoogle.com

Введите следующий SQL оператор:

Будет выбрано 2 записи. Вот результаты, которые вы должны получить:

customer_idfirst_namelast_namefavorite_website
4000JustinBiebergoogle.com
9000RussellCrowegoogle.com

Это запрос вернет все строки, где customer_id НЕ находится в диапазоне между 5000 и 8000 включительно. Это было бы эквивалентно следующему запросу SELECT: