已知:select b.full_name,b.obj_id,b.name,('port-'||row_number()over(partition by b.par_card order by null)) as a from mw_app.t_eqp_port b where b.name is null; ,怎么用update语句将a列中数据更新到name列
时间: 2024-03-21 16:44:24 浏览: 53
根据表名及字段,自动生成insert,update,select语句
3星 · 编辑精心推荐
可以使用子查询来实现将查询结果中的 a 列更新到 name 列,具体的 update 查询如下:
```
UPDATE mw_app.t_eqp_port
SET name = (
SELECT a
FROM (
SELECT ('port-'||row_number()over(partition by b.par_card order by null)) as a
FROM mw_app.t_eqp_port b
WHERE b.name is null
)
WHERE mw_app.t_eqp_port.obj_id = b.obj_id
)
WHERE name is null;
```
这里先用一个子查询获取查询结果中的 a 列,再将其更新到表 mw_app.t_eqp_port 的 name 列中。需要注意的是,子查询中的 obj_id 字段需要和更新语句中的 obj_id 字段匹配,保证更新的是同一条记录。另外,更新语句中的 where 子句可以仅选择 name 字段为空的记录进行更新。
阅读全文