Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




Использование 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 ¦ Говядина 189. 124.

AND Жиры > 100; ¦ Масло 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

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

 

SELECT *

FROM Блюда

WHERE Основа IN (Яйца Крупа Овощи);

 

Результат: БЛ Блюдо В Основа Выход Труд

-- ---------------- - ------ ----- ----

1 Салат летний З Овощи 200. 3

3 Салат витаминный З Овощи 200. 4

16 Драчена Г Яйца 180. 4

17 Морковь с рисом Г Овощи 260. 3

19 Омлет с луком Г Яйца 200. 5

20 Каша рисовая Г Крупа 210. 4

21 Пудинг рисовый Г Крупа 160. 6

23 Помидоры с луком Г Овощи 260. 4

 

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

Предыдущее предложение эквивалентно такому:

SELECT *

FROM Блюда

WHERE Основа=Яйца OR Основа=Крупа OR Основа=Овощи;

 

Можно задать и NOT IN (не принадлежит), а также возможность использования IN (NOT IN) с подзапросом, о чем будет рассказано в главе 3.




Поделиться с друзьями:


Дата добавления: 2015-05-10; Просмотров: 1190; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.