DELETE 和 UPDATE 语句中的子查询

除了在 SELECT 的 WHERE 子句中的子查询,还可以在其它数据操纵语言(DML)语句中使用子查询,包括 DELETE 和 UPDATE 的 WHERE 子句。

适用某些限制。如果子查询的 FROM 子句返回多行,并且该子句指定与其它 DML 语句正在修改相同的表或视图,那么处于下列情况下的 DML 语句会成功。 如果这些条件中的任何条件都不符合,那么 DML 操作发生错误 -360。
以下示例修改 stock 表,通过增加价格子集的 10 % 来增加 unit_price 值。WHERE 子句通过将 IN 运算符应用到从 stock 表查找到 unit_price 值少于 75 而返回的行来增加价格。
UPDATE stock SET unit_price = unit_price * 1.1 
          WHERE unit_price IN
          (SELECT unit_price FROM stock WHERE unit_price < 75);