一、 在Oracle数据库中查询所谓的“重复”记录,根据判断标准可以细分为三种情况:
1.根据单个属性字段判断重复性:
select *
from tableName
where columnName in (select columnName
from tableName
group by columnName
having count(columnName) > 1);
2.根据多个属性字段判断重复性:
select *
from tableName a
where (a.columnName1, a.columnName2) in (select columnName1, columnName2
from tableName
group by columnName1, columnName2
having count(*) > 1);
3.所有属性完全相同的情况:
select distinct * from td_tyorg;
利用上面的SQL语句就可以查询出不相同的记录
---查询重复记录---
select * from tablename where id in (
select id from tablename
group by id
having count(id) > 1;
二、删除重复记录:
1.删除某个字段相同记录(只留下rowid最小的记录,其中rowid为oracle系统自建的字段):
delete from people
where peopleId in (select peopleId
from people
group by peopleId
having count(peopleId) > 1)
and rowid not in (select min(rowid)
from people
group by peopleId
having count(peopleId) > 1);
4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录:
delete from vitae a
where (a.peopleId, a.seq) in (select peopleId, seq
from vitae
group by peopleId, seq
having count(*) > 1)
and rowid not in (select min(rowid)
from vitae
group by peopleId, seq
having count(*) > 1);
PS:如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
select distinct *
into #Tmp
from tableName drop table tableName
select * into tableName from #Tmp drop table #Tmp
分享到:
相关推荐
使用Oracle查询并删除重复记录的SQL语句
oracle中 ,如何删除重复的记录信息
Oracle查询重复数据与删除重复记录方法,Oracle查询重复数据与删除重复记录方法
查询及删除oracle重复记录的SQL语句
oracle删除重复记录性能分析平时收集,希望能给需要帮助的人提供便利
2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录 delete from people where peopleId in (select peopleId from people group by peopleId having count (peopleId) >...
删除重复记录的方法原理:在Oracle中,每一条记录都有一个rowid,rowid在整个数据库中是唯一的,rowid确定了每条记录是在Oracle中的哪一个数据文件、块、行上。在重复的记录中,可能所有列的内容都相同,但rowid不会...
Oracle数据库删除重复记录的方法
Oracle数据库删除表中重复记录的方法三则.txt
Oracle查询重复数据并删除,只保留一条记录.docx
查询及删除重复记录的SQL语句1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断select * from 表 where Id in (select Id from 表 group by Id having count(Id) > 1)2、删除表中多余的重复记录,...
几个删除重复记录的SQL语句 1.用rowid方法 2.用group by方法 3.用distinct方法 1。用rowid方法
总结的多条oracle删除重复记录的例子
一、背景 一张person表,有id和name的两个字段,id是唯一的不允许重复,id相同则认为是重复的记录。 二、解决 ...Oracle删除重复数据的SQL(删除所有): 删除重复数据的基本结构写法: 想要删除这些
Oracle 查找与删除表中重复记录的步Oracle 查找与删除表中重复记录的步
删除重复记录 删除数据表中的重复记录,包括MySQL、SQL Server、Oracle等
总结一下几种查找和删除重复记录的方法,适用于有大量重复记录的情况
plsql删除重复记录
oracle 数据库中重复的记录行的清理删除方法,总结了几种比较可行的方法路径并分析了方法的优劣