Исходники
Статьи
Языки программирования
.NET Delphi Visual C++ Borland C++ Builder C/С++ и C# Базы Данных MySQL MSSQL Oracle PostgreSQL Interbase VisualFoxPro Веб-Мастеру PHP HTML Perl Java JavaScript Протоколы AJAX Технология Ajax Освоение Ajax Сети Беспроводные сети Локальные сети Сети хранения данных TCP/IP xDSL ATM Операционные системы Windows Linux Wap Книги и учебники
Скрипты
Магазин программиста
|
Использование операторов 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 < ANY ( SELECT cname FROM Customers ) Результат: 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. |
Форум Программиста
Новости Обзоры Магазин Программиста Каталог ссылок Поиск Добавить файл Обратная связь Рейтинги
|