欢迎来到天天文库
浏览记录
ID:54861837
大小:23.50 KB
页数:6页
时间:2020-04-23
《Oracle中查找与删除重复记录方.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、个人收集整理,勿做商业用途中查找和删除重复记录方法平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示01452:不能创建唯一索引,发现重复记录。下面总结一下几种查找和删除重复记录的方法(以表为例):表的结构如下:>?C1(10)C10(5)C202(3)删除重复记录的方法原理:(1).在中,每一条记录都有一个,在整个数据库中是唯一的,确定了每条记录是在中的哪一个数据文件、块、行上。(2).在重复的记录中,可能所有列的内容都相同,但不会相同,所以只要确定出重复记录中那些具有最大的就可以了,其
2、余全部删除。重复记录判断的标准是:C110和C20这三列的值都相同才算是重复记录。经查看表总共有16条记录:>100>*;C1C10C201212121223121212126/6个人收集整理,勿做商业用途232323233434344553617220.1.查找重复记录的几种方法:(1)>*c11020(*)>1;C1C10C20122334(2)>*;C1C10C20122334(3)>*a(()c11c1010c2020);C1C10C201223342.删除重复记录的几种方法:(1).适用于有大量重复记
3、录的情况(在C110和C20列上建有索引的时候,用以下语句效率会很高):6/6个人收集整理,勿做商业用途>(c11020)(c110,c20c11020(*)>1)(()c11020(*)>1);>(()c11020);(2).适用于有少量重复记录的情况(注意,对于有大量重复记录的情况,用以下语句效率会很低):>a(()b1110102020);>a<(()b1110102020);>a<(()c11c1010c2020);(3).适用于有少量重复记录的情况(临时表法):>*;(建一个临时表用来存放重复的记录)
4、>;(清空表的数据,但保留表的结构)>*;(再将临时表里的内容反插回来)(4).适用于有大量重复记录的情况(子句法):采用命令中的子句也可以确定出库表中重复的记录。这种方法稍微麻烦一些,为了使用“”子句,必须首先创建表。创建该表的脚本文件为。对于2000系统和系统,存放该文件的位置稍有不同,在2000系统下,该脚本文件存放在$90目录下;而对于系统,该脚本文件存放在$目录下。具体步骤如下:>.>?6/6个人收集整理,勿做商业用途2(30)2(30)2(30)>(c11020);*1:02299:()->*();
5、.>*;C1C10C201212121223121212122323232334343416.>;6/6个人收集整理,勿做商业用途16.>();16.>*;3.>*;C1C10C20122334455361727.从结果里可以看到重复记录已经删除。6/6个人收集整理,勿做商业用途6/6
此文档下载收益归作者所有