在网上查了一下,去除重复数据有两种情况:
1、部分字段重复,对于这种情况可这样做:
(1)create table 临时表 as select a.字段1,a.字段2,MAX(a.ROWID) dataid from 正式表 a GROUP BY a.字段1,a.字段2;
(2) delete from 表名 a
where a.rowid !=
(
select b.dataid from 临时表 b
where a.字段1 = b.字段1 and
a.字段2 = b.字段2
);
(3)commit;
我不想删除原有数据,就另建了一个表:
(1)create table 临时表 as select a.字段1,a.字段2,MAX(a.ROWID) dataid from 正式表 a GROUP BY a.字段1,a.字段2;
(2)create table 去重表名 as select a.* from 正式表 a, 临时表 b where a.rowid = b.dataid;
2.对于完全重复的数据,网上说可以这样:
(1) CREATE TABLE 临时表 AS (select distinct * from 表名);
(2) truncate table 正式表;
(3) insert into 正式表 (select * from 临时表);
(4) drop table 临时表;
从SQL语句来看,应该是可以实现的。
更新:
对于不完全重复数据还找到了以下方法,利用ORACLE中的ROWID:
假设student表中的stunum字段中有重复数据,现在要找出哪些数据重复,并删除。
查看哪些数据重复:
select * from student where stunum in (select stunum(select stunum ,count(*) from student group by stunum having count(*) >1)) --这句太复杂,要好好想想怎么简化。
select * from student a,student b where a.stunum = b.stunum and a.rowid < b.rowid
删除重复数据:
delete from student a where a.rowid<(select max(rowid) from student b where a.stunum = b.stunum)
分享到:
相关推荐
删除表中产生的重复数据,并且不会损害和修改原表数据.
oracle中如何删除重复数据,方便大家下载
使用ORACLE去除重复数据,这在日常数据处理中非常有用。
如何高效删除Oracle数据库中的重复数据.重复数据删除技术可以提供更大的备份容量,实现更长时间的数据保留,还能实现备份数据的持续验证
ORACLE删除重复数据
Oracle查询重复数据与删除重复记录方法,Oracle查询重复数据与删除重复记录方法
OracleSQL实例-删除重复数据行留最新日期实例.pdf 学习资料 复习资料 教学资源
oracle中删除重复的数据,你们都用什么方法呢,我觉得很不错的去重复数据的方法,给大家分享一下
oracle数据库各种删除重复数据方法
我们可能会出现这种情况,某个表原来设计不周全,导致表...一、对于部分字段重复数据的删除 先来谈谈如何查询重复的数据吧。 下面语句能够查询出那些数据是重复的: select 字段1,字段2,count(*) from 表名 group
ORACLE删除重复数据的一种高效的方法.
oracle 数据库中重复的记录行的清理删除方法,总结了几种比较可行的方法路径并分析了方法的优劣
Oracle查询重复数据并删除,只保留一条记录.docx
查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 group by Id having count(Id) > 1)2、删除表中多余的重复记录,...
Oracle数据库删除重复记录的方法
删除重复记录的方法原理:在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。在重复的记录中,可能所有列的内容都相同,但rowid不会...
oracle删除重复记录性能分析平时收集,希望能给需要帮助的人提供便利
Oracle数据库删除表中重复记录的方法三则.txt
一、背景 一张person表,有id和name的两个字段,id是唯一的不允许重复,id相同则认为是重复的记录。 二、解决 ...Oracle删除重复数据的SQL(删除所有): 删除重复数据的基本结构写法: 想要删除这些
oracle删除重复数据方法。希望对大家有用。谢谢!