该表达式列表可包括一个或多个子查询。每一必须返回包含一个或多个值的单个行。SET 子句显式地或隐式地指定的列的数目必须等于在多列 SET 子句中等号(=)之后的表达式(或表达式列表)所返回的值的数目。
UPDATE ... SET ... = ((subqueryA),(subqueryB), ... (subqueryN))
UPDATE items SET (stock_num, manu_code, quantity) = ( (SELECT stock_num, manu_code FROM stock WHERE description = 'baseball'), 2) WHERE item_num = 1 AND order_num = 1001; UPDATE table1 SET (col1, col2, col3) = ((SELECT MIN (ship_charge), MAX (ship_charge) FROM orders), '07/01/2007') WHERE col4 = 1001;
如果您正在更新表层级中的超级表,则 SET 子句不可包括引用它的子表之一的子查询。如果您正在更新表层级中的子表,则 SET 子句中的子查询可引用超级表,如果它仅引用超级表的话。也就是说,子查询必须使用 SELECT… FROM ONLY (supertable) 语法。