要求如下:通过sql语句更新一个没有连接条件的表。
测试数据:
有两个表test1、test2,别分别如下:
- SQL code
create table TEST1( CODE VARCHAR2(20), NO VARCHAR2(20))
- SQL code
create table TEST2( CODE VARCHAR2(20), NO VARCHAR2(20))
测试数据如下:
- SQL code
insert into test1 (CODE, NO)values ('001001', '1');insert into test1 (CODE, NO)values ('001001', '2');insert into test1 (CODE, NO)values ('001001', '3');insert into test2 (CODE, NO)values ('001001', '');insert into test2 (CODE, NO)values ('001001', '');insert into test2 (CODE, NO)values ('001001', '');
通过ORACLE sql语句 如何将TEST1表的no字段值更新到TEST2表的no字段???
------解决方案--------------------
- SQL code
--增加辅助序号列alter table test2 add (rn number);--更新序号值update test2 set rn=rownum;--更新noUPDATE test2 a SET a.no = (SELECT b.no FROM (SELECT t.*, rownum rn FROM test1 t) b WHERE b.rn = a.rn);commit;--删除辅助序号列alter table test2 drop column rn;