Использование подзапросов с 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 ));

‹ Использование подзапросов с INSERT
Вверх
Не вставляйте дубликаты строк ›

Добавить комментарий

Adblock
detector