您的位置:首页 > 数据库 > Oracle

oracle 快速移动数据和删除重复数据但保留其中一条数据

2015-01-30 14:21 295 查看
在项目中会遇到将一个表的部分数据移动另一个表中的事情。

insert into table1 (id,其他属性)
select t.a,t.c...from table2 t
注意属性类型大小要一致

这是数据库内部数据转移,我测试过来,40万数据量,只要几秒时间。表示非常快。

项目中会遇到数据重复,需要删除重复数据只保留一条数据

delete from table1 t 
where t.rowid > (select min(p.rowid) from table1 p where t.a =p.a);


原理利用函数 min()把有重复中除最小外都删除了,没有重复数据的最小值肯定与min()出来的结果相等则不会被删除

a属性就是数据中重复的数据。如果还有其他条件可以按照个人意愿随便加。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: