2.14.   Использование COUNT вместо EXISTS

При отсутствии NULL-значений оператор EXISTS можетбыть использован вместо ANY и ALL. Также вместо EXISTS и NOT EXISTS могут быть использованы те же самые подзапросы, нос использованием COUNT(*) в предложении SELECT. Например, запрос

SELECT *

FROM UNIVERSITY А WHERE MOT EXISTS (SELECT * FROM UNIVERSITY В WHERE A.RATING > = В.RATING AND B.CITY = 'Москва'); может быть представлен и в следующем виде: SELECT *

FROM UNIVERSITY А WHERE 1 >

(SELECT COUNT(*) FROM UNIVERSITY В WHERE A.RATING > = В.RATING AND B.CITY = ■Москва1);

Упражнения

1. Напишите запрос, выбирающий данные о названиях университе­тов, рейтинг которых равен или превосходит рейтинг Воронежско­го государственного университета.

2. Напишите запрос, использующий ANY или ALL, выполняющий вы-

борку данных о студентах, у которых в городе их постоянного мес­тожительства нет университета.

3. Напишите запрос, выбирающий из таблицы EXAM_MARRS данные о названиях предметов обучения, для которых значение получен­ных на экзамене оценок (поле MARK) превышает любое значение оценки для предмета, имеющего идентификатор, равный 105.

4. Напишите этот же запрос с использованием МАХ.