【问题标题】:Update statement with an inner query使用内部查询更新语句
【发布时间】:2021-09-12 03:56:25
【问题描述】:
以下是我的脚本,它适用于单个记录。
UPDATE SUPPORT
SET POSTALADDRESSLINE1 = (SELECT (POSTALDELIVERYNUMBERPREFIX ||' '|| POSTALDELIVERYNUMBERVALUE ||' '|| POSTALDELIVERYSTREETNAME ||' '|| POSTALDELIVERYSTREETTYPE)
FROM SUPPORT WHERE SUPPORTID ='2119022')
WHERE SUPPORTID ='2119022';
我现在需要为大约 3000 条记录执行此操作。有没有一种简单的方法可以做到这一点?
【问题讨论】:
标签:
sql
oracle
sql-update
【解决方案1】:
这不是 PL/SQL,它只是 SQL。您不需要 SET 子句中的子查询。相反,您可以像这样重写它:
UPDATE SUPPORT
SET POSTALADDRESSLINE1 = POSTALDELIVERYNUMBERPREFIX ||' '||
POSTALDELIVERYNUMBERVALUE ||' '||
POSTALDELIVERYSTREETNAME ||' '||
POSTALDELIVERYSTREETTYPE
WHERE SUPPORTID ='2119022';
一旦您进行了测试以确保它有效,请调整您的 WHERE 子句,使其选择您的 3000 条记录(或者如果您正在处理整个表,则删除 WHERE),您应该已经准备好了。
【解决方案2】:
UPDATE SUPPORT
SET POSTALADDRESSLINE1 = (POSTALDELIVERYNUMBERPREFIX ||' '|| POSTALDELIVERYNUMBERVALUE ||' '|| POSTALDELIVERYSTREETNAME ||' '|| POSTALDELIVERYSTREETTYPE)
WHERE ...;