Мартин грубер понимание sql перевод Лебедева В. Н. Под редакцией Булычева В. Н. Москва, 1993 martin gruber


SELECT * FROM Customers WHERE rating > ALL ( SELECT rating FROM Customers WHERE city = ‘Rome’ )


Download 1.45 Mb.
bet64/172
Sana26.01.2023
Hajmi1.45 Mb.
#1128343
1   ...   60   61   62   63   64   65   66   67   ...   172
Bog'liq
Грубер. Понимание SQL

SELECT *
FROM Customers
WHERE rating > ALL ( SELECT rating
FROM Customers
WHERE city = ‘Rome’ );

=============== SQL Execution Log ============
| SELECT * |
| FROM Customers |
| WHERE rating > ALL |
| (SELECT rating |
| FROM Customers |
| WHERE city = 'Rome'); |
| ============================================= |
| cnum cname city rating snum |
| ----- -------- ---- ------ ------ |
| 2004 Grass Berlin 300 1002 |
| 2008 Cisneros San Jose 300 1007 |
===============================================

Рисунок 13.9: Использование оператора ALL


Этот оператор проверяет значения оценки всех заказчиков в Риме. Затем он находит заказчиков с оценкой большей чем у любого из заказчиков в Риме. Самая высокая оценка в Риме — у Giovanni (200). Следовательно, выбираются только значения выше этих 200.
Как и в случае с ANY, мы можем использовать EXISTS для производства альтернативной формулировки такого же запроса — (вывод показан на Рисунке 13.10):
SELECT *
FROM Customers outer
WHERE NOT EXISTS ( SELECT *
FROM Customers inner
WHERE outer.rating < = inner.rating
AND inner.city = ’Rome’ );

=============== SQL Execution Log ============
| SELECT * |
| FROM Customers outer |
| WHERE NOT EXISTS |
| (SELECT * |
| FROM Customers inner |
| WHERE outer rating = inner.rating |
| AND inner.city = 'Rome'); |
| ============================================= |
| cnum cname city rating snum |
| ----- -------- ---- ------ ------ |
| 2004 Grass Berlin 300 1002 |
| 2008 Cisneros San Jose 300 1007 |
===============================================

Рисунок 13.10: Использование EXISTS в качестве альтернативы к ALL


РАВЕНСТВА И НЕРАВЕНСТВА
ALL используется в основном с неравенствами чем с равенствами, так как значение может быть "равным для всех" результатом подзапроса только если все результаты, фактически, идентичны. Посмотрите следующий запрос:

Download 1.45 Mb.

Do'stlaringiz bilan baham:
1   ...   60   61   62   63   64   65   66   67   ...   172




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling