zoukankan      html  css  js  c++  java
  • 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;

    总结:

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

  • 相关阅读:
    Dom对象,控制html元素
    运算符总结
    数组
    变量命名规则
    css实现气泡说明框
    深入理解CSS中的层叠上下文和层叠顺序
    jquery书写
    二级导航
    iis配置
    Android ListView无法触发ItemClick事件
  • 原文地址:https://www.cnblogs.com/BoyVVin/p/3912486.html
Copyright © 2011-2022 走看看