Использование between

С помощью 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. Минимальные оклады.
Миноклад Начало Конец
  01-01-1993 31-03-1993
  01-04-1993 30-06-1993
  01-07-1993 30-11-1993
  01-12-1993 30-06-1994
  01-07-1994 09-09-9999

Если, например, потребовалось узнать, какие изменения минимальных окладов производились в 1993/94 учебном году, то можно выдать запрос

SELECT Начало, Миноклад FROM Миноклады WHERE Начало BETWEEN '1-9-1993' AND '31-8-1994'

и получить результат:

Начало Миноклад
01-12-1993  
01-07-1994  

Отметим, что при формировании запросов значения дат следует заключать в апострофы, чтобы СУБД не путала их с выражениями и не пыталась вычитать из 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'
Миноклад Начало Конец
  01/07/1993 30/11/1993
  01/12/1993 30/06/1994
  01/07/1994 09/09/9999

Наконец, для получения минимального оклада на 15-5-1994:

SELECT Миноклад FROM Миноклады WHERE '15-05-1994' BETWEEN Начало AND Конец

Результат:

Миноклад
 

Использование IN.

Выдать сведения о блюдах на основе яиц, крупы и овощей

SELECT * FROM Блюда WHERE Основа IN (Яйца Крупа Овощи);

Результат:

БЛ Блюдо В Основа Выход Труд
  Салат летний З Овощи 200.  
  Салат витаминный З Овощи 200.  
  Драчена Г Яйца 180.  
  Морковь с рисом Г Овощи 260.  
  Омлет с луком Г Яйца 200.  
  Каша рисовая Г Крупа 210.  
  Пудинг рисовый Г Крупа 160.  
  Помидоры с луком Г Овощи 260.  

Рассмотренная форма IN является в действительности просто краткой записью последовательности отдельных сравнений, соединенных операторами OR. Предыдущее предложение эквивалентно такому:

SELECT * FROM Блюда WHERE Основа=Яйца OR Основа=Крупа OR Основа=Овощи;

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: