【问题标题】: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 ...;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-02
        • 1970-01-01
        相关资源
        最近更新 更多