现有两张表a,b表a 结构:
co11 col2 col3
A 1
A 2
A 3
B 1
B 2表b结构:
col1 col2
A 'AA'
B 'BB'
现希望将表a更新为:
co11 col2 col3
A 1
A 2
A 3 'AA'
B 1
B 2 'BB'
请问语句该如何写?
感激不禁!!
co11 col2 col3
A 1
A 2
A 3
B 1
B 2表b结构:
col1 col2
A 'AA'
B 'BB'
现希望将表a更新为:
co11 col2 col3
A 1
A 2
A 3 'AA'
B 1
B 2 'BB'
请问语句该如何写?
感激不禁!!
解决方案 »
- 诚意贴:双击环境下 一台服务器上的oracle数据库软件损坏 怎么办
- 【求助】一台电脑的oracle数据库每天晚上自动备份到另一台电脑上,怎么做?
- 查看Oracle表空间使用率
- 触发器不能执行语句: alter sequence Seq_Kf02_Pzbh maxvalue 9;
- 高手进,关于ORACLE9i的金额累计输出???
- 如何复制oracle远程数据库表? 急。。。
- 内存占用太大(win2003 64位,安装了64 位oracle10g),怎么降低
- 从oracle数据库表查询出从第十到第20条记录的最快方法是什么?
- 使用存储过程返回游标,那么此游标会自己关闭吗?
- 这个存储过程又有点问题了!!!
- 请大家看看我为什么会抱错!(高级队列问题)
- 在一个Procedure中怎么不能使用dbms_aq包啊,应该怎么做才能使用???请大侠赐教
cursor v_rc is
select t2.col1 as a, t2.col2 as b, t1.m as c
from t2, (select col1 c, max(col2) as m from t group by col1) t1
where t1.c = t2.col1;
i v_rc%rowtype;
begin
open v_rc; loop
fetch v_rc
into i;
exit when v_rc%notfound;
update t
set col3 = i.b
where t.col1 = i.a
and t.col2 = i.c;
end loop;
commit;
Exception
when others then
rollback;
Dbms_Output.put_line('Error' || sqlcode);
end;
1 update a set col3=(select b.col2 from b where a.col1=b.col1 and a.col2=
2 (select col2 from
3 (select row_number()over(partition by col1 order by col2 desc) rn ,
4 col2,col1 from a ) c
5* where rn=1 and a.col1=c.col1))
SQL> /已更新5行。SQL> select * from a;C COL2 COL3
- ---------- ----------
a 1
a 2
a 3 aaa
b 1
b 2 bbb