| |
С помощью BETWEEN ... AND ... (находится в интервале от ... до ...) можно отобрать строки, в которых значение какого-либо столбца находятся в заданном диапазоне.
Например, выдать перечень продуктов, в которых значение содержания белка находится в диапазоне от 10 до 50:| Результат: | ||
|---|---|---|
SELECT Продукт, Белки FROM Продукты WHERE Белки BETWEEN 10 AND 50; |
||
| Продукт | Белки | |
| Майонез | 31. | |
| Сметана | 26. | |
| Молоко | 28. | |
| Морковь | 13. | |
| Лук | 17. | |
Можно задать и NOT BETWEEN (не принадлежит диапазону между), например:
| Результат: | ||
|---|---|---|
SELECT Продукт, Белки, Жиры FROM Продукты WHERE Белки NOT BETWEEN 10 AND 50 AND Жиры > 100; |
||
| Продукт | Белки | Жиры |
| Говядина | 189. | 124. |
| Масло | 60. | 825. |
| Яйца | 127. | 115. |
BETWEEN особенно удобен при работе с данными, задаваемыми интервалами, начало и конец которых расположен в разных столбцах.
Для примера воспользуемся таблицей "минимальных окладов" (табл. 2.1), величина которых непосредственно связана со студенческой стипендией. В этой таблице для текущего значения минимального оклада установлена запредельная дата окончания 9 сентября 9999 года.
Таблица 2.1
Минимальные оклады
| Миноклад | Начало | Конец |
|---|---|---|
| 2250 | 01-01-1993 | 31-03-1993 |
| 4275 | 01-04-1993 | 30-06-1993 |
| 7740 | 01-07-1993 | 30-11-1993 |
| 14620 | 01-12-1993 | 30-06-1994 |
| 20500 | 01-07-1994 | 09-09-9999 |
Если, например, потребовалось узнать, какие изменения минимальных окладов производились в 1993/94 учебном году, то можно выдать запрос
SELECT Начало, Миноклад FROM Миноклады WHERE Начало BETWEEN '1-9-1993' AND '31-8-1994'и получить результат:
| Начало | Миноклад |
|---|---|
| 01-12-1993 | 14620 |
| 01-07-1994 | 20500 |
Отметим, что при формировании запросов значения дат следует заключать в апострофы, чтобы СУБД не путала их с выражениями и не пыталась вычитать из 31 значение 8, а затем 1994.
Для выявления всех значений минимальных окладов, которые существовали в 1993/94 учебном году, можно сформировать запрос
SELECT * FROM Миноклады WHERE Начало BETWEEN '1-9-1993' AND '31-8-1994' OR Конец BETWEEN '1-9-1993' AND '31-8-1994'
| Миноклад | Начало | Конец |
|---|---|---|
| 7740 | 01/07/1993 | 30/11/1993 |
| 14620 | 01/12/1993 | 30/06/1994 |
| 20500 | 01/07/1994 | 09/09/9999 |
Наконец, для получения минимального оклада на 15-5-1994:
| Результат: | ||
|---|---|---|
SELECT Миноклад FROM Миноклады WHERE '15-05-1994' BETWEEN Начало AND Конец |
||
| Миноклад | ||
| 14620 | ||
2.3.1 | Содержание | 2.3.3
|
Закладки на сайте Проследить за страницей |
Created 1996-2025 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |