Oracle去除重复数据
更新时间:2022年05月05日 15:39:20 作者:springsnow
这篇文章介绍了Oracle去除重复数据的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
查询某些字段相同的记录
如:查询col1与col2值相同的记录:
select a.* from table1 a, table1 b where a.id <> b.id and a.col1 = b.col1 and a.col2 = b.col2;
一、用rowid方法:
根据oracle自带的rowid属性进行判断是否存在重复记录。
rowid伪列用于唯一标识物理位置的表行,当用insert插入数据时,会自动生成rowid,与数据一起存放,形如:AAAL=XAAAEAAAAA。
1、查数据:
select * from table1 a where rowid!= (select max(rowid) from table1 b where a.col1 = b.col1 and a.col2 = b.col2;
2、删数据:
保留rowid最大的记录:
delete from table1 a where rowid!= (select max(rowid) from table1 b where a.col1 = b.col1 and a.col2 = b.col2;
二、group by 方法:
1、查数据:
select * from table1 a where (a.col1,a.col2) in (select col1,col2 from table1 group by col1,col2 having count(*)>1)
2、删数据:
删除表中多余的重复记录(多个字段),只保留rowid最小的记录。
delete from table1 a where (a.col1,a.col2) in (select col1,col2 from table1 group by col1,col2 having count(*)>1) and rowid not in (select min(rowid) from table1 group by col1,col2 having count(*)>1)
到此这篇关于Oracle去除重复数据的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
相关文章
Oracle数据库rownum和row_number的不同点
在Oracle中,有一个很有趣的东西,那就是rownum。当你从某个表中查询数据的时候,返回的结果集中都会带有rownum这个字段,而且有时候也可以使用rownum进行一些条件查询2015-11-11PLSQL Developer连接oracle数据库配置教程
这篇文章主要介绍了PLSQL Developer连接oracle数据库配置步骤,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下2019-09-09Oracle使用fy_recover_data恢复truncate删除的数据
这篇文章主要介绍了Oracle使用fy_recover_data恢复truncate删除的数据,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下2022-07-07oracle中的greatest 函数和 least函数示例代码
这篇文章主要介绍了oracle中的greatest 函数和 least函数的实例代码,非常不错,具有一定的参考借鉴价值 ,需要的朋友可以参考下2018-11-11
最新评论