Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:
реклама

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Использование операторов ANY, ALL

Рассмотрим новый способ нахождения агента с заказчиками размещенными в их городах:

SELECT *
FROM Salespeople
WHERE city = ANY (
    SELECT city
    FROM Customers
)
Результат:
SNUM  SNAME   CITY       COMM  
----- ------- ---------- ----- 
1001  Иванов  Москва     12
1003  Егоров  Караганда  10
Оператор ANY берет все значения, выведенные подзапросом, и оценивает их как верные, если любое из них равняется значению города в текущей строке внешнего запроса. Это означает, что подзапрос должен выбирать значения такого же типа как и те, которые сравниваются в основном условии.

В приведенном выше запросе можно было бы использовать оператор IN. Однако оператор ANY можно применять не только с оператором равенства. Например, можно найти всех агентов, у которых заказчики следуют им в алфавитном порядке: SELECT * FROM Salespeople WHERE sname SNUM SNAME CITY COMM ----- -------- ---------- ----- 1001 Иванов Москва 12 1002 Петров Хабаровск 13 1003 Егоров Караганда 10 1004 Сидоров Сочи 11

Оператор ALL считает условие верным, если каждое значение, выбранное подзапросом, удовлетворяет условию внешнего запроса. Выберем тех заказчиков, чьи рейтинги выше чем у каждого заказчика в Москве:

SELECT *
FROM Customers
WHERE rating > ALL(
    SELECT rating
    FROM Customers
    WHERE city = 'Москва'
)
Результат:
CNUM  CNAME                             CITY       RATING  SNUM
----- --------------------------------- ---------- ------- -----
2002  AО Бендер и К                     Одесса     200     1003
2003  Фирма ХХХ                         Рязань     200     1002
2004  Концерн "Дети лейтенанта Шмидта"  Бобруйск   300     1002
2008  ОАО "Валют-транзит"               Караганда  300     1007

Вот собственно и все об операторах специфичных для SQL. Мы прошагали по простым запросам, изучили вложенные подзапросы. Осталось сделать еще один шаг - как объединить вывод произвольного количества запросов при помощи команды UNION.


Предыдущая | Следующая | Оглавление

Original version: http://www.mjk.msk.ru/~dron/

Оставить комментарий

Комментарий:
можно использовать BB-коды
Максимальная длина комментария - 4000 символов.
 
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог