两张表A,B有相同的列(id,grade),我想对那些有相同id的数据,把A的grade更新为B的grade.
简单来说我想运行以下语句(当然,这是错误的用法):
update A set A.grade=B.grade
where A.id=B.id
我想请教一下这样的sql该怎么写?
简单来说我想运行以下语句(当然,这是错误的用法):
update A set A.grade=B.grade
where A.id=B.id
我想请教一下这样的sql该怎么写?
set a.grade =
(select b.grade from b where a.id = b.id)
--加上下面限制条件,(不加限制,如果没有匹配到B表ID,GRADE值会被更新为null)
where exists (select 1 from b where a.id = b.id);或者merge into
merge into a
using b
on (a.id = b. id)
when matched then
update set a.grade = b.grade
set a.grade = (select b.grade from b where b.id = a.id);
2# 的第二个语句,10g 以上可用(含 10g),在9i 版本,必须要写上 matched 和 not matched 这两个,10 g 以上,只写 matched 就可以了;