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_id supplier_name city state
100 Yandex Moscow Moscow
200 Google Lansing Michigan
300 Oracle Redwood City California
400 Bing Redmond Washington
500 Yahoo Sunnyvale Washington
600 DuckDuckGo Paoli Pennsylvania
700 Qwant Paris Ile de France
800 Facebook Menlo Park California
900 Electronic Arts San Francisco California

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

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

supplier_id supplier_name city state
300 Oracle Redwood City California
400 Bing Redmond Washington
500 Yahoo Sunnyvale Washington
600 DuckDuckGo Paoli Pennsylvania

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

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

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

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

order_id customer_id order_date
1 7000 2019/06/18
2 5000 2019/06/18
3 8000 2019/06/19
4 4000 2019/06/20
5 NULL 2019/07/01

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

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

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

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

order_id customer_id order_date
3 8000 2019/06/19
4 4000 2019/06/20
5 NULL 2019/07/01

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

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

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

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

customer_id first_name last_name favorite_website
4000 Justin Bieber google.com
5000 Selena Gomez bing.com
6000  Mila Kunis yahoo.com
7000 Tom Cruise oracle.com
8000 Johnny Depp NULL
9000 Russell Crowe google.com

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

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

customer_id first_name last_name favorite_website
4000 Justin Bieber google.com
9000 Russell Crowe google.com

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