繁体   English   中英

从子查询的结果更新

[英]update from result of a subquery

嗨,我想从子查询的结果中更新数据

UPDATE A
SET A.a = (select a from A inner join B on B.b=A.c and 
        B.cf='RGNVQE63H48J869P'  and B.b=2345 and
        CAST(A.a as decimal)>1);

我想要 Aa=子查询的结果。

使用相关子查询。 您的代码有问题,因为正在更新的表在子查询中重复:

UPDATE A
    SET A.a = (SELECT b.a 
               FROM B 
               WHERE B.b = A.c AND 
                     B.cf = 'RGNVQE63H48J869P' AND
                     B.b = 2345 and
                     CAST(A.a as decimal) > 1
              );

笔记:

  • 如果子查询返回多于一行,这将导致错误。
  • 如果子查询没有返回任何行,那么将分配0

这回答了您在这里提出的问题。 如果这不能满足您的真正需要,请使用示例数据、所需结果、适当的数据库标签以及对您想要做什么的清晰解释提出一个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM