我在一个表中有近 2000 行(“传感器”,它有 2000 多行),我需要在其中更新一列,即传感器名称。
更新中的部分替换基于另一个表 deviceport 的内容。
Deviceport通过这个deviceportid列与更新表相关——sensor.deviceportid = deviceportid。因此,每一行的实际更新都是不同的。我不想写 2000 条更新语句,但我无法弄清楚我的“where”语句会说什么。
UPDATE sensor sn SET sn.sensorname = (
SELECT REGEXP_REPLACE(
sensorname,
'^P(\d)',
'J ' || (
SELECT d.deviceportlabel
FROM deviceport d
WHERE d.deviceportid = s.deviceportid
) ||
' Breaker \1'
)
FROM sensor s
WHERE REGEXP_LIKE( sensorname, '^P(\d)')
)
WHERE ...?
有什么线索吗?