SQL
Теория: Фильтрация данных по диапазону
Ранее в курсе мы уже научились работать с запросами, в которых данные фильтруются по диапазону значений. Например, мы умеем фильтровать записи по диапазону дат создания пользователя:
Но есть одна сложность — такое условие неудобно читать и писать. Нам приходится дважды указывать одно и то же имя поля, поэтому есть вероятность допустить опечатку или ошибиться в операторах «больше» и «меньше». Для этой задачи можно использовать более удобный оператор — BETWEEN. В этом уроке мы изучим, как он работает.
Как фильтровать данные по диапазону
По сути, оператор BETWEEN — это сокращенная версия двух условий, соединенных через AND. Напишем запрос, который выбирает пользователей с датой рождения от 1 января до 1 февраля 2022 года:
Теперь запишем диапазон дат через BETWEEN:
Во втором запросе мы использовали BETWEEN. Обратите внимание, чем отличаются два этих запроса:
- В первом запросе крайние значения не входят в диапазон

- Во втором запросе — входят

Другими словами, эти два запроса не равнозначны. В первый диапазон не попадут пользователи с датой рождения 2022-01-01 или 2022-02-01.
А теперь попробуем написать запрос, равнозначный запросу с BETWEEN. Для этого используем операторы сравнения:
>=вместо><=вместо<
Такой запрос будет полностью равнозначен запросу с BETWEEN.
Представим, что нам нужно выбрать все записи, которые НЕ попадают в диапазон. Тогда мы добавляем оператор NOT:
Такой запрос выведет всех пользователей, чьи даты рождения попадают в заданный диапазон — строго меньше 1 января или строго больше 1 февраля 2022 года.

Обычно оператор BETWEEN используют для дат, но его можно применять и с числами:
Выводы
В этом уроке мы изучили оператор BETWEEN, который позволяет отфильтровать данные по диапазону. Это намного удобнее, чем использовать два условия «больше или равно» и «меньше или равно», это улучшает читаемость и понимание запроса.
Нужно помнить, что BETWEEN включает в условие крайние значения из указанного диапазона.
Рекомендуемые программы
Завершено
0 / 25








