嗨,我想从子查询的结果更新一个数据
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);
我想要A.a=子查询的结果。
使用相关子查询。您的代码有一个问题,因为正在更新的表在子查询中重复:
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
。
这回答了您在这里问的问题。如果这不是你真正需要的,问一个新的问题,包括样本数据,期望的结果,适当的数据库标记,以及你想做什么的清晰解释。