大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 数据库 -> Oracle 中如何删除重复数据

Oracle 中如何删除重复数据

时间: 2021-07-31 作者:daque

咱们大概会展示这种情景,某个表从来安排不周密,引导表内里的数据数据反复,那么,怎样对反复的数据举行简略呢?反复的数据大概有如许两种情景,第一种时表中惟有某些字段一律,第二种是两行记载实足一律。一、对于局部字段反复数据的简略先来谈谈怎样查问反复的数据吧。底下语句不妨查问出那些数据是反复的:select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1将上头的>号改为=号就不妨查问出没有反复的数据了。想要简略那些反复的数据,不妨运用底下语句举行简略delete from 表名 a where 字段1,字段2 in(select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)上头的语句特殊大略,即是将查问到的数据简略掉。然而这种简略实行的功效特殊低,对于大数据量来说,大概会将数据库吊死。以是我倡导先将查问到的反复的数据插入到一个偶尔表中,而后对举行简略,如许,实行简略的功夫就不必再举行一次查问了。如次:create table 偶尔表 as(select 字段1,字段2,count(*) from 表名 group by 字段1,字段2 having count(*) > 1)上头这句话即是创造了偶尔表,并将查问到的数据插入个中。底下就不妨举行如许的简略操纵了:delete from 表名 a where 字段1,字段2 in (select 字段1,字段2 from 偶尔表);这种先建偶尔表再举行简略的操纵要比径直用一条语句举行简略要高效得多。这个功夫,大师大概会跳出来说,什么?你叫咱们实行这种语句,那不是把一切反复的全都简略吗?而咱们想保持反复数据中最新的一条记载啊!大师不要急,底下我就讲一下怎样举行这种操纵。在oracle中,有个湮没了机动rowid,内里给每条记载一个独一的rowid,咱们即使想保持最新的一条记载,咱们就不妨运用这个字段,保持反复数据中rowid最大的一条记载就不妨了。底下是查问反复数据的一个例子:select a.rowid,a.* from 表名 a where a.rowid != (select max(b.rowid) from 表名 b where a.字段1 = b.字段1 and a.字段2 = b.字段2 )底下我就来解说一下,上头括号中的语句是查问出反复数据中rowid最大的一条记载。而表面即是查问出除去rowid最大除外的其余反复的数据了。由此,咱们要简略反复数据,只保持最新的一条数据,就不妨如许写了:delete from 表名 a where a.rowid != (select max(b.rowid) from 表名 b where a.字段1 = b.字段1 and a.字段2 = b.字段2 )随意说一下,上头语句的实行功效是很低的,不妨商量创造偶尔表,讲须要确定反复的字段、rowid插入偶尔表中,而后简略的功夫在举行比拟。create table 偶尔表 as select a.字段1,a.字段2,max(a.rowid) dataid from 正式表 a group by a.字段1,a.字段2;delete from 表名 a where a.rowid != (select b.dataid from 偶尔表 b where a.字段1 = b.字段1 and a.字段2 = b.字段2 );commit;二、对于实足反复记载的简略对于表中两行记载实足一律的情景,不妨用底下语句获得到去掉反复数据后的记载:select distinct * from 表名不妨将查问的记载放到偶尔表中,而后再将从来的表记载简略,结果将偶尔表的数据导回从来的表中。如次:create table 偶尔表 as (select distinct * from 表名);drop table 正式表;insert into 正式表 (select * from 偶尔表);drop table 偶尔表;即使想简略一个表的反复数据,不妨先建一个偶尔表,将去掉反复数据后的数据导出到偶尔表,而后在从偶尔表将数据导出正式表中,如次:insert into t_table_bakselect distinct * from t_table;

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.