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数据库中SQL开窗函数的使用

    Oracle数据库中SQL开窗函数的使用

    这篇文章主要介绍了Oracle数据库中SQL开窗函数的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Oracle在DML语句中使用returing into子句

    Oracle在DML语句中使用returing into子句

    这篇文章介绍了Oracle在DML语句中使用returing into子句的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • Oracle报错ora-12514检查以及解决方法

    Oracle报错ora-12514检查以及解决方法

    前几天重新安装了数据库服务器,在服务器上使用都一切正常,然后在我的客户端配置一个tns服务名却出问题了,下面这篇文章主要给大家介绍了关于Oracle报错ora-12514检查以及解决方法的相关资料,需要的朋友可以参考下
    2023-03-03
  • Oracle阻塞(blockingblocked)实例详解

    Oracle阻塞(blockingblocked)实例详解

    这篇文章主要介绍了Oracle阻塞(blockingblocked),需要的朋友可以参考下
    2014-07-07
  • Oracle数据库正则表达式纯数字例子

    Oracle数据库正则表达式纯数字例子

    正则表达式已经在很多软件中得到广泛的应用,包括*nix(Linux, Unix等),HP等操作系统,PHP,C#,Java等开发环境,这篇文章主要给大家介绍了关于Oracle数据库正则表达式纯数字的相关资料,需要的朋友可以参考下
    2024-08-08
  • Oracle的RBO和CBO详细介绍和优化模式设置方法

    Oracle的RBO和CBO详细介绍和优化模式设置方法

    这篇文章主要介绍了Oracle的RBO和CBO详细介绍和优化模式设置方法,RBO即基于规则的优化方式(Rule-Based Optimization),CBO即基于代价的优化方式(Cost-Based Optimization),需要的朋友可以参考下
    2014-07-07
  • 详解PL/SQL Developer连接本地Oracle 11g 64位数据库

    详解PL/SQL Developer连接本地Oracle 11g 64位数据库

    本篇文章主要介绍了PL/SQL Developer连接本地Oracle 11g 64位数据库 ,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04
  • CentOS 6.3下安装部署Oracle服务器图文教程

    CentOS 6.3下安装部署Oracle服务器图文教程

    这篇文章主要介绍了CentOS 6.3下安装部署Oracle服务器图文教程,本文内容详细,步骤清楚,并配有大量图片说明,需要的朋友可以参考下
    2014-09-09
  • Oracle 自定义split 函数实例详解

    Oracle 自定义split 函数实例详解

    这篇文章主要介绍了Oracle 自定义split 函数实例详解的相关资料,需要的朋友可以参考下
    2017-01-01
  • oracle数据库中sql%notfound的用法详解

    oracle数据库中sql%notfound的用法详解

    SQL%NOTFOUND 是一个布尔值。下面通过本文给大家分享oracle数据库中sql%notfound的用法,需要的的朋友参考下吧
    2017-06-06

最新评论