如何删除oracle库中相同的记录-创新互联
创新互联主营三河网站建设的网络公司,主营网站建设方案,
成都app软件开发,三河h5微信小程序搭建,三河网站营销推广欢迎三河等地区企业咨询/>
如何删除oracle库中相同的记录,但是保留重复记录中的一条记录:
解决方法:可以利用oracle中的rowid伪列来达到这个目的:
1.建立临时表,并将查询到的重复数据插入其中(是否可以建一个视图?):
create table temp_woods as
(select item_id,count(*) as rowcount from wooods group by item_id having count(*) > 1 );
2.查询相同的纪录:
select a.*,a.rowid from woods a where a.rowid <> (select max(b.rowid) from woods b where b.item_id in (select item_id from temp_woods) where b.item_id = a.item_id) ;
3.删除重复的记录并保留其中rowid列大的纪录:
delete from woods a where a.rowid <> (select max(b.rowid) from woods b where b.item_id in (select item_id from temp_woods) where b.item_id = a.item_id) ;
4.删除临时表:
drop table temp_woods cascade constraints ;
当前文章:如何删除oracle库中相同的记录-创新互联
分享地址:
http://pwwzsj.com/article/cddogd.html