Оператор EXISTS принимает значение True (Истина), если результат выполнения подзапроса является непустым множеством. Если порожденное подзапросом множество пусто, то EXISTS принимает значение False (Ложь). Оператор NOT EXISTS работает в точности наоборот. Он истинен, если результат подзапроса пуст, и ложен в противном случае.
Операторы EXISTS и NOT EXISTS всегда помещаются перед подзапросом.
В качестве примера выберем наименования товаров, которые заказали покупатели из Новгорода:
SELECT cNmGoods ;
FROM Goods ;
WHERE EXISTS ;
(SELECT * ;
FROM Customer, Ordsalem, Ordsaled ;
WHERE Ordsalem.icdOrder=Ordsaled.icdOrder ;
AND Ordsalem.iCdCustomer = Customer.iCdCustomer ;
AND Ordsaled.iCdGoods = Goods.iCdGoods ;
AND Customer.cCity = 'Новгород')