oracle__删除重复记录__三种方法及总结(转载百度文库)

http://wenku.baidu.com/link?url=RIENeGUK4sjxe21_RBYLYHR9tbUUCmOZQRR0mIjldXLYwRAt4khDtLQD9dFyd3rz3s_HWLvG2oErTw8sJUb1R2QLQqSZaBO3xLA8tu2qd9q

--方法1:rowid

--显示重复的行 select * from persons p1 where rowid<> (select max(rowid) from persons p2 where p1.pid=p2.pid);

说明:

如果,有多个字段相同,则添加即可,如: select * from persons p1 where rowid<> (select max(rowid) from persons p2 where p1.pid=p2.pid and p1.pname=p2.pname);

--删除重复的行 delete from persons p1 where rowid<> (select max(rowid) from persons p2 where p1.pid=p2.pid);

总结:

A:每张表的记录可能相同,但是每张表的记录的ROWID是唯一的;

B:做题思路

a:显示相同字段的最大ROWID       b:留下相同字段的最大ROWID所在的记录,其它的记录删除;

--方法二:group by

按照PID分组,显示pid数量大于1的记录

select pid from persons group by pid having count(pid)>1;

删除重复行

delete from persons where pid in (select pid from persons group by pid having count(pid)>1);

此方法将删除有重复记录的所有行,不会留下一条刻录;

--方法三:distinct

取消重复行 select distinct * from persons;

建表并复制“取消重复行的表中的数据” create table table_new as select distinct * from persons;

删除persons表中数据 delete from persons;

把table_new表中没有重复行的数据插入到到persons表中 insert into persons select * from table_new;

总结:

使用中间表导入导出数据来删除重复行;

oracle__删除重复记录__三种方法及总结(转载百度文库)

时间: 2024-10-17 08:31:37

oracle__删除重复记录__三种方法及总结(转载百度文库)的相关文章

oracle中查找和删除重复记录的几种方法总结

平时工作中可能会遇到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录. 下面总结一下几种查找和删除重复记录的方法(以表CZ为例): 表CZ的结构如下: 1 SQL> desc cz 2 Name Null? Type 3 ------------------------------------------------------------------- 4 C1 NUMBER(10) 5 C10 NUMBER(5) 6 C20 VARC

oracel 查询删除重复记录的几种方法

建表语句CREATE TABLE Persons(PersonID int,           LastName varchar(255),FirstName varchar(255),Address varchar(255),City varchar(255)); insert into Persons values(1,'a','aa','aaa','aaaa');insert into Persons values(1,'a','aa','aaa','aaaa');insert into

spring+hibernate删除单条记录的几种方法

spring+hibernate删除单条记录的几种方法

去除DataTable重复数据的三种方法

其中要避免目标库插入重复数据.这重复数据可能是源数据库本身就有重复数据,还有就是已经插入避免重复插入. 过滤自身重复数据解决方案 第一种:采用DataView.ToTable()方法 DataView.ToTable 方法 .NET Framework 2.0 其根据现有 DataView 中的行,创建并返回一个新的 DataTable. 重载列表 名称 说明 DataView.ToTable () 根据现有 DataView 中的行,创建并返回一个新的 DataTable. 由 .NET Co

css清除浮动float的三种方法总结【转载自https://my.oschina.net/leipeng/blog/221125】

摘要: css清除浮动float的三种方法总结,为什么清浮动?浮动会有那些影响?     一.抛一块问题砖(display: block)先看现象: 分析HTML代码结构: <div class="outer">     <div class="div1">1</div>     <div class="div2">2</div>     <div class="div3

SQL Server 数据库查找重复记录的几种方法

http://www.hanyu123.cn/html/c61/6790.html 一.查某一列(或多列)的重复值.(只可以查出重复记录的值,不能查出整个记录的信息) 例如:查找stuid,stuname重复的记录: select stuid,stuname from stuinfo group by stuid,stuname having(count(*))>1 二.查某一列有重复值的记录.(此方法查出的是所有重复的记录,如果有两条记录重复的,就查出两条) 例如:查找stuid重复的记录:

JS判断一个数组中是否有重复值的三种方法

方法一: var s = ary.join(",")+","; for(var i=0;i<ary.length;i++) { if(s.replace(ary[i]+",","").indexOf(ary[i]+",")>-1) { alert("数组中有重复元素:" + ary[i]); break; } } 方法二: var ary = new Array("

SQL Server删除表信息的三种方法

1.使用DELETE实现SQL Server删除表信息 (1)删除表中的全部信息 USE student GO DELETE student      --不加where条件,删除表中的所有记录 go (2)删除表中符合条件的记录 USE student GO DELETE student where Id='001'    --删除表中符合条件的记录 GO 2.使用TRUNCATE删除表中的信息 USE student GO TRUNCATE TABLE    student   --删除表中

js判断数组是否有重复数据的三种方法

var arr=new Array("aa","bb","cc","dd","aaa","aa"); // 方法1:取出数组中的一个值,与其之后的数据挨个比对>>>最容易想到,但运算最麻烦 var method1=function(array){ for(var i=0;i<array.length-1;i++) { for(var j=i+1;j<arra