ИСПОЛЬЗОВАНИЕ ПОДЗАПРОСОВ С UPDATE
UPDATE использует подзапросы тем же самым способом что и
DELETE - внутри этого необязательного предиката. Вы можете использовать соотнесенные подзапросы
или в форме
пригодной для использования с DELETE - связаной или с модифицируемой таблицей или с таблицей
вызываемой во
внешнем запросе. Например, с помощью соотнесенного подзапроса к таблице которая будет
модифицироваться, вы можете
увеличить комиссионные всех продавцов которые были назначены по крайней мере двум заказчикам:
UPDATE Salespeople
SET comm = comm + .01 WHERE 2 < = ( SELECT COUNT (cnum) FROM Customers WHERE Customers.snum = Salespeople.snum );
Теперь продавцы Peel и Serres, имеющие многочисленых заказчиков, получат повышение своих
комиссионных. Имеется
разновидность последнего примера из предыдущего раздела с DELETE. Он уменьшает комиссионные
продавцов которые
произвели наименьшие порядки, но не стирает их в таблице:
UPDATE Salespeople SET comm = comm - .01 WHERE snum IN (
SELECT snum FROM Orders a WHERE amt = ( SELECT MIN (amt) FROM Orders b WHERE a.odate = b.odate ));