update testc c set c.name=c.name+(select a.name from testa a where a.id=c.id)
不好意思,用了我自己的测试表update b set b.qty=b.qty+(select a.qty from a where a.id=b.id)
UPDATE B b SET b.qty=b.qty+(SELECT a.qty FROM A a WHERE a.id=b.id);
UDATE B SET B.qty=B.qty+NVL((SELECT A.qty FROM A WHERE A.id=B.id),0) WHERE B.id=A.ID
问题追加:首先肯定一楼写的应该是正确的, 类似 b.qty=b.qty+(SELECT a.qty FROM A a WHERE a.id=b.id)应该会报错吧?问题,如果要在A上锁定范围a.id between 1 and 100,而在更新B的时候 我也只想更新b.id between 1 and 100的是数据,而不是整个B表, 请问是否有解呢?
update b set b.qty=b.qty+(select a.qty from a where a.id=b.id) where b.id between 1 and 100
update b set b.qty=b.qty+(select a.qty from a where a.id=b.id )where b.id between 1 and 100
update b set qty=nvl((select a.qty+b.qty from a where a.id=b.id),b.qty) where b.id between 1 and 100;
SET b.qty=b.qty+(SELECT a.qty FROM A a WHERE a.id=b.id);
类似 b.qty=b.qty+(SELECT a.qty FROM A a WHERE a.id=b.id)应该会报错吧?问题,如果要在A上锁定范围a.id between 1 and 100,而在更新B的时候
我也只想更新b.id between 1 and 100的是数据,而不是整个B表,
请问是否有解呢?