Для числовых данных типичной задачей является проверка попадания в диапазон значений. Например, для получения продуктов со стоимостью от 30000 до 60000 можно написать запрос:
SELECT *
FROM product_price
WHERE 30000 <= price
AND price <= 60000
# | product_id | store_id | price |
---|---|---|---|
1 | 8 | 400 | 37000.00 |
2 | 8 | 600 | 38200.00 |
3 | 9 | 600 | 43800.00 |
4 | 8 | 302 | 38300.00 |
5 | 9 | 302 | 44500.00 |
А можно воспользоваться конструкцией BETWEEN
, которая дает в точности такой же результат:
SELECT *
FROM product_price
WHERE price BETWEEN 30000 AND 60000
# | product_id | store_id | price |
---|---|---|---|
1 | 8 | 400 | 37000.00 |
2 | 8 | 600 | 38200.00 |
3 | 9 | 600 | 43800.00 |
4 | 8 | 302 | 38300.00 |
5 | 9 | 302 | 44500.00 |
Следует учитывать, что BETWEEN
включает границы в интервал.
NOT BETWEEN
NOT BETWEEN
выполняет противоположное сравнение. Так запрос
SELECT *
FROM product_price
WHERE price NOT BETWEEN 30000 AND 60000
# | product_id | store_id | price |
---|---|---|---|
1 | 1 | 300 | 10500.00 |
2 | 10 | 400 | 75600.00 |
3 | 4 | 400 | 20000.00 |
... | ... | ... | ... |
эквивалентен запросу
SELECT *
FROM product_price
WHERE price < 30000
OR price > 60000