Специальные операторы ANY или SOME

Операторы SOME и ANY — взаимозаменяемы везде и там где мы используем ANY, SOME будет работать точно так же. Различие в терминологии состоит в том, чтобы позволить людям использовать тот термин, который наиболее однозначен. Это может создать проблему; потому что, как мы это увидим, наша интуиция может иногда вводить в заблуждение. Имеется новый способ нахождения продавца с заказчиками размещенными в их городах ( вывод для этого запроса показывается в Рисунке 13.1 ):     SELECT * FROM Salespeople WHERE city = ANY ( SELECT city FROM Customers );     Оператор ANY берет все значения, выведенные подзапросом, ( для этого случая — это все значения city в таблице Заказчиков ), и оценивает их как верные, если любой(ANY) из их равняется значению города текущей строки внешнего запроса.

SQL Execution Log

SELECT *
FROM Salespeople WHERE city = ANY (SELECT city
FROM Customers);

cnum
cname
city
comm

1001
Peel
London
0.12

1002
Serres
San Jose
0.13

1004
Motika
London
0.11

Рисунок 13. 1: Использование оператора ANY     Это означает, что подзапрос должен выбирать значения такого же типа как и те, которые сравниваются в основном предикате. В этом его отличие от EXISTS, который просто определяет, производит ли подзапрос результаты или нет, и фактически не использует эти результаты.  
 

‹ Использование операторов ANY, ALL, И SOME
Вверх
Использование операторов IN или EXIST вместо оператора ANY ›

Айтистанция
Добавить комментарий