使用 SET 子句的多列格式来罗列多个列并将它们设置等于相应的表达式。
元素 |
描述 |
限制 |
语法 |
column |
要被更新的列的名称 |
不可为序列类型或 ROW 类型。column 名称的数目必须等于返回到 = 号右边的值的数目。
|
标识符 |
expression |
为 column 返回值的表达式
|
不可包括聚集函数 |
表达式 |
singleton_select |
正好返回一行的子查询 |
子查询返回的值必须对应于 column 列表中的列
|
SELECT 语句 |
SPL function |
返回一个或多个值的 SPL 例程 |
返回的值必须与 column 列表中的列一一对应
|
标识符 |
SET 子句的多列格式为罗列您想要更新的列的集合提供下列选项:
- 显式地罗列每一列,在列之间放置逗号,将列的集合括在圆括号之间。
- 通过使用星号(*)隐式地罗列表中的所有列。
您必须显式地罗列每一表达式,在表达式之间放置逗号(,)分隔符,并将表达式的集合括在圆括号之间。列的数目必须等于表达式列表所返回的值的数目,除非该表达式列表包括一 SQL 子查询。
下列示例展示 SET 子句的多列格式:
UPDATE customer
SET (fname, lname) = ('John', 'Doe') WHERE customer_num = 101;
UPDATE manufact
SET * = ('HNT', 'Hunter') WHERE manu_code = 'ANZ';