Меню Закрыть

Between в sql запросе

Содержание

При работе с реляционными СУБД, в которых данные хранятся в табличном виде, пользователи часто сталкиваются с задачей выборки значений, входящих (не входящих) в определенный диапазон. Язык SQL позволяет задать множество, которому должно (не должно) принадлежать значение различными вариантами – оператором In, оператором Like, комбинацией условий больше – меньше, а также оператором SQL Between. Описание и примеры в данной статье будут посвящены последнему варианту.

Оператор «Между» в SQL: синтаксис, ограничения

Дословно оператор between SQL так и переводится – «между». Его использование позволяет задать ограничение «От и До» к конкретному полю, и если очередное значение попадет в диапазон, то предикат примет значение «Истина», и значение попадет в итоговую выборку.

Синтаксис у оператора предельно простой:

Where t1.n between 0 and 7

Как видим, после ключевого слова between необходимо указать значение нижней границы диапазона, затем AND и значение верхней границы.

Перечислим, с какими типами данных может работать оператор between SQL:

  1. С числами – целыми и дробными.
  2. С датами.
  3. С текстом.

У данного оператора between SQL есть определенные особенности. Познакомимся с ними:

  1. При работе с числами и датами значения ограничений «От и До» включаются в выборку.
  2. Значение нижней границы диапазона должно быть меньше значения верхней границы, иначе не будет выведено ничего, ведь условие логически не верно. Особенно внимательным нужно быть, когда вместо конкретных значений в условие включаются переменные.

При работе с текстом значение верхней границы диапазона не будет включено в выборку, если оно не указано предельно точно. В следующих разделах рассмотрим данную особенность подробнее.

Выборка чисел и дат в определенном диапазоне

Подготовим таблицу с данными по менеджерам, работающим в организации. Таблица будет иметь следующую структуру:

Читайте также:  Bluetooth колонка jbl charge 3 характеристики

В этой статье мы рассмотрим логический оператор BETWEEN языка T-SQL, Вы узнаете, что это за оператор и как его использовать. А также мы, конечно же, разберём примеры SQL запросов с применением оператора BETWEEN.

Оператор BETWEEN в языке T-SQL

BETWEEN – это логический оператор языка T-SQL, который определяет диапазон для проверки. Другими словами, с помощью BETWEEN мы можем проверить, входит ли значение в определённый диапазон.

Синтаксис

test_expression [ NOT ] BETWEEN begin_expression AND end_expression

Описание аргументов

  • test_expression – выражение, которое подлежит проверке на принадлежность к диапазону в пределах от begin_expression до end_expression;
  • begin_expression – выражение, характеризующее начала диапазона;
  • end_expression – выражение, характеризующее конец диапазона.

Все выражения должны иметь одинаковый тип данных.

В качестве результата оператор BETWEEN возвращает значения (Boolean):

  • TRUE – если значение аргумента test_expression больше или равно значению begin_expression, при этом меньше или равно значению end_expression, т.е. test_expression входит в диапазон от begin_expression до end_expression;
  • FALSE – если значение аргумента test_expression не входит в диапазон от begin_expression до end_expression.

С помощью ключевого слова NOT мы можем инвертировать результат предиката, иными словами, NOT BETWEEN означает, что мы хотим проверить значение на предмет того, что оно не входит в заданный диапазон.

В данном случае оператор NOT BETWEEN вернет TRUE, если значение аргумента test_expression не входит в диапазон от begin_expression до end_expression.

В случае если в BETWEEN хотя бы одно из выражений будет содержать значение NULL, результат будет не определён.

Заметка! Напоминаю, что необходимо всегда помнить о том, что существуют такие значения как NULL (это не пусто и не 0, это отсутствие значения), которые обрабатывается SQL сервером по-особому, результат SQL запроса с участием NULL-значений может быть неочевиден и непредсказуем.

Заметка! Если Вы начинающий программист и хотите изучить язык T-SQL с нуля, то рекомендую почитать мою книгу «Путь программиста T-SQL», в ней я подробно рассказываю про основы языка T-SQL, а также уделяю немало внимания и продвинутым конструкциям.

Исходные данные для примеров

В качестве сервера у меня выступает Microsoft SQL Server 2016 Express. Для примера давайте представим, что у нас есть таблица TestTable, и в ней содержатся следующие данные (перечень товаров с указанием цены). Строки в таблицу я добавляю с помощью инструкции INSERT INTO.

Читайте также:  Awus036h драйвер windows 10

Пример использования оператора BETWEEN в секции WHERE

Давайте напишем SQL запрос, который выведет нам все товары, цена которых находится в диапазоне от 100 до 200 рублей включительно.

Данный запрос мы могли бы написать и без использования оператора BETWEEN, например, следующий SQL запрос абсолютно эквивалентен.

Как видим, результат одинаковый, но в случае с BETWEEN условие выглядит более наглядно и понятно, к тому же выражение для проверки (Price) мы записали всего один раз, в случае с операторами сравнения два.

Пример использования оператора BETWEEN в условной конструкции IF

Оператор BETWEEN можно использовать не только в секции WHERE, но и в других конструкциях языка T-SQL, например, в условной конструкции IF. В следующем примере мы проверим переменную @TestVar на предмет того, входит ли значение этой переменной в диапазон от 1 до 10 и, если входит, выполним нужное нам действия, я для примера просто пошлю запрос SELECT.

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

Сейчас давайте напишем запрос с применением ключевого слова NOT, например, нам нужно вывести все товары, цена которых не входит в диапазон от 100 до 200 рублей (эквивалентный пример с использованием операторов сравнения я также прилагаю).

В данном случае нам вывелись все товары, цена которых меньше 100 или больше 200 рублей.

В языке T-SQL кроме оператора BETWEEN существуют и другие логические операторы, например, оператор EXISTS, который в некоторых случаях бывает очень полезен, его мы также рассматривали на этом сайте.

Оператор BETWEEN выбирает значения в заданном диапазоне. Значения могут быть числами, текстом или датами.

Синтаксис BETWEEN

Следующий оператор SQL выбирает все продукты с ценой BETWEEN 5 и 200:

Читайте также:  Схема подключения конденсаторов компрессора

Пример:

Пример NOT BETWEEN

Чтобы отобразить товары вне диапазона предыдущего примера, используйте NOT BETWEEN:

Пример:

Пример BETWEEN с IN

Следующий оператор SQL выбирает все товары с ценой BETWEEN 5 и 200 и не показывать товары с категориями 1, 2, 3, 4, 5.

Пример:

BETWEEN текстовых значений
Следующий оператор SQL выбирает все товары с name BETWEEN ‘Красный телефон’ и ‘Серебристая клавиатура’:

Пример:

NOT BETWEEN текстовых значений

Следующий оператор SQL выбирает все продукты с name NOT BETWEEN ‘Красный телефон’ и ‘Серебристая клавиатура’:

Пример:

Пример BETWEEN с датами

Следующий оператор SQL выбирает все счета с помощью date BETWEEN.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.