`
keepwork
  • 浏览: 334283 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle--重复记录

 
阅读更多

 开发者博客www.developsearch.com

 

 

查出重复记录

SQL》 select rowid,bm,mc from a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc);

ROWID BM MC

------------------ ---- --------------------

000000D5.0000.0002 1111 1111

000000D5.0001.0002 1112 1111

000000D5.0002.0002 1113 1111

000000D5.0003.0002 1114 1111

 

 

删除重复记录

SQL》 delete from a a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc);

删除4个记录。

SQL》 select rowid,bm,mc from a;

ROWID BM MC

------------------ ---- --------------------

000000D5.0004.0002 1111 1111

000000D5.0005.0002 1112 1111

000000D5.0006.0002 1113 1111

000000D5.0007.0002 1114 1111

 

 

根据单个属性字段判断重复性:

select * from tableName

 where columnName in (select columnName  from tableName

       group by columnName having count(columnName) > 1);

 

 

根据多个属性字段判断重复性:

select *  from tableName a

 where (a.columnName1, a.columnName2) in (select columnName1, columnName2

    from tableName  group by columnName1, columnName2 having count(*) > 1);

 

 

所有属性完全相同的情况:

select distinct * from td_tyorg;

 

 

删除某个字段相同记录(只留下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);

 

 

删除表中多余的重复记录(多个字段),只留有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);

 

 

 如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除

select distinct *

  into #Tmp

  from tableName drop table tableName

        select * into tableName from #Tmp drop table #Tmp

 

 

找出在表product中字段product_id和saler_id中重复的记录?  

 

  即product_id               saler_id  

  -----------------------------  

        22                                   aa  

        22                                   aa  

        33                                   aa  

        44                                   aa  

        55                                   bb  

        55                                   bb  

        66                                   bb  

        77                                   bb  

   

如何查出product_id重复的记录!

select   product_id   from   product  

group   by   product_id,saler_id   having   count(*)>1

 

 开发者博客www.developsearch.com

 


 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Oracle-Soa-Suite-Datasheet.pdf

    1. **复用性**:业务组件可以被多个应用程序重复利用。 2. **易于维护和变更**:通过模块化设计降低维护成本。 3. **业务可见性提高**:提供了更深入的业务洞察力,有助于快速响应市场变化。 #### 四、Oracle SOA ...

    oracle中如何删除重复的记录

    要删除Oracle数据库表中的重复记录,有几种方法可以采用: ##### 方法一:使用子查询与DELETE语句 这种方法适用于只需要删除重复记录中的某些行的情况。步骤如下: 1. **找出重复的记录**:首先,我们需要找到...

    Oracle--vb代码.rar

    这允许重复使用已打开的数据库连接,而不是每次需要时都创建新的连接。 7. 用户界面交互:VB的控件如DataGridView或DataGrid可以用来显示从Oracle数据库检索的数据,用户可以直接在界面上进行查看和编辑。 8.事务...

    Oracle-ERP开发笔记

    - 删除重复的记录是数据清洗的重要环节之一。 **12. 查询具有相同薪水的职工** - 通过JOIN或子查询等技术查询具有相同薪水的员工。 **13. Oracle死锁之解决方法** - 解决死锁的方法通常包括回滚部分事务或调整锁定...

    oracle-pagehelper-通用mapper-easyui-SSM框架示例

    6. **通用Mapper**:通用Mapper是MyBatis的增强工具,它提供了一些基础的Mapper接口,如增删改查等操作,减少了开发者编写大量重复的SQL代码。通过继承这些接口,可以直接在Service层调用,提高开发效率。 7. **...

    ORACLE-SQL优化

    SQL编码标准也是优化过程的一个重要方面,它涉及如何编写和设计能够被共享和重复利用的SQL语句,以此提高性能和减少资源消耗。 三、Oracle的优化器 ORACLE优化器负责解析SQL语句并生成执行计划。优化器有两种模式:...

    OracleSQL实例-删除重复数据行留最新日期实例.pdf

    在Oracle SQL中,删除重复数据并保留最新日期的实例是一个常见的数据清理任务,尤其是在具有历史记录或事务数据的数据库中。这个实例展示了如何通过SQL查询有效地处理这种情况。在这个例子中,我们有一个名为`abc`的...

    oracle-schedule.rar_oracle_oracle schedule

    6. **日志记录与通知**:作业执行的结果会被记录在数据库中,可以通过查询视图来查看。此外,还可以配置通知机制,当作业状态改变时发送邮件或其他形式的通知。 7. **程序包和API**:DBMS_SCHEDULER是用于操作和...

    ERP-ORACLE-EBS-AP付款的管理.doc

    ERP-Oracle-EBS系统的AP(Accounts Payable,应付账款)模块是企业资源规划系统中的重要组成部分,主要用于管理公司的对外支付流程。以下是对AP付款管理的详细解释: 1. **付款流程**: - 发票录入和验证:首先,...

    ORACLE-EBS 高级定价配置文件

    - **描述**:确定批量导入时加载到内存中的记录数。 - **设置建议**:根据系统的硬件配置来调整,以优化性能。过高可能会导致系统响应变慢甚至崩溃。 ##### 10. **QP:BlindDiscountOption** - **描述**:控制...

    Oracle数据库删除表中重复记录的方法三则.txt

    ### Oracle数据库删除表中重复记录的方法 在Oracle数据库管理中,经常会遇到需要处理表中的重复数据的情况。重复数据不仅会占用不必要的存储空间,还可能导致数据统计错误或业务逻辑混乱等问题。因此,掌握如何有效...

    使用Oracle查询并删除重复记录的SQL语句

    使用Oracle查询并删除重复记录的SQL语句 在实际应用中,删除重复记录是非常常见的操作,特别是在数据导入、数据整合和数据清洁等场景中。Oracle数据库提供了多种方式来查询和删除重复记录,本文将详细介绍这些方法...

    Oracle-ERP-EBS-应付模块AP概要培训.ppt

    - 当出现重复的供应商信息时,需要对其进行合并处理,以避免数据冗余和错误。 - 合并过程需要谨慎操作,确保所有相关的交易信息被正确转移到合并后的供应商信息中。 #### 三、发票管理 - **主要操作流程**: - ...

    数据库-oracle-学习之路.docx

    - 在Oracle中,删除重复数据通常涉及使用子查询和`ROWID`,通过比较同一字段组合的最小`ROWID`来保留一条记录,删除其他重复的行。 4. **查询第一条记录**: - 若要获取表的第一条记录,可以利用`ROWNUM`伪列,...

    Oracle-SQL优化.doc

    - 通过共享机制避免重复解析相同的SQL语句,提高执行效率。 - 适用范围:单表查询,对于复杂的多表连接查询则不适用。 2. **共享条件**: - 字符级别的精确匹配:SQL文本需完全一致。 - 执行对象的匹配:引用...

    Oracle-ERP(NEW)笔记

    - **去重记录**:掌握取不重复记录的方法,保持数据的唯一性。 - **表数量统计**:统计EBS表的数量,了解系统规模。 - **锁的概念**:Oracle锁的基本概念及其实现机制。 - **死锁处理**:解决Oracle死锁问题的策略与...

    Oracle-财务系统培训手册.doc

    - **经常性和成批分配凭证**:自动化处理重复或批量的会计事务。 6. **凭证复核和登帐**: - **两种凭证复核方式**:介绍复核凭证的不同流程和控制机制。 - **凭证登帐**:将复核过的凭证过账到总帐的过程。 7....

    oracle-产品介绍.ppt

    Oracle获得了最高级别的安全认证,性能方面,Oracle保持着TPC记录,表明其在处理大量事务时表现出色。相比之下,IBM的DB2和Microsoft的SQL Server虽然也有其优势,但总体上在某些方面稍逊一筹,例如,SQL Server主要...

    ERP-oracle-ebs-经常性凭证及成批分配凭证.doc

    ERP-oracle-ebs系统中的"经常性凭证及成批分配凭证"是两个关键的财务管理功能,主要用于自动化处理重复发生的财务交易,以提高效率和准确性。 首先,**经常性凭证**是为了处理那些周期性发生的相同或类似交易而设计...

    ORACLE重复记录查询.docxORACLE

    在Oracle数据库管理中,处理重复记录是一个常见的任务,特别是在数据清洗和数据整合的过程中。本文将详细探讨如何在Oracle中查询和删除重复记录,主要聚焦于单个字段和多个字段的情况。 1. **单个字段重复记录查询*...

Global site tag (gtag.js) - Google Analytics