带有内部查询的更新语句

时间:2021-06-30 00:39:20

标签: sql oracle sql-update

下面是我的脚本,它适用于单个记录。

UPDATE SUPPORT
SET POSTALADDRESSLINE1 =  (SELECT (POSTALDELIVERYNUMBERPREFIX ||' '|| POSTALDELIVERYNUMBERVALUE ||' '|| POSTALDELIVERYSTREETNAME ||' '||  POSTALDELIVERYSTREETTYPE)
FROM SUPPORT WHERE SUPPORTID ='2119022')

WHERE SUPPORTID ='2119022';

我现在需要为大约 3000 条记录执行此操作。有没有简单的方法可以做到这一点?

2 个答案:

答案 0 :(得分:1)

这不是 PL/SQL,它只是 SQL。您不需要 SET 子句中的子查询。相反,您可以像这样重写它:

UPDATE SUPPORT 
SET POSTALADDRESSLINE1 = POSTALDELIVERYNUMBERPREFIX ||' '|| 
                         POSTALDELIVERYNUMBERVALUE ||' '|| 
                         POSTALDELIVERYSTREETNAME ||' '|| 
                         POSTALDELIVERYSTREETTYPE
WHERE SUPPORTID ='2119022';

在您测试以确保其有效后,调整您的 WHERE 子句,使其选择您的 3000 条记录(如果您正在处理整个表格,则去掉 WHERE),您应该一切就绪。

>

答案 1 :(得分:0)

UPDATE SUPPORT
SET POSTALADDRESSLINE1 = (POSTALDELIVERYNUMBERPREFIX ||' '|| POSTALDELIVERYNUMBERVALUE ||' '|| POSTALDELIVERYSTREETNAME ||' '||  POSTALDELIVERYSTREETTYPE)
WHERE ...;