zoukankan      html  css  js  c++  java
  • Oracle删除重复数据记录

    删除重复记录,利用ROWID 和MIN(或MAX)函数, ROWID在整个数据库中是唯一的,由Oracle自己产生和维护,并唯一标识一行(无论该表中是否有主键和唯一性约束),ROWID确定了每条记录在哪个数据文件、哪个块上。

    利用not in:

    delete from manager 

    where ROWID NOT IN( select  MIN(ROWID) from manager group by mgrno);

    删除之前的数据:

    SQL> select * from manager;

         MGRNO MNAME                          JOB
    ---------- ------------------------------ --------------------------
    SALARY
    --------------------------------------------------------------------
            11 Jane                           j1
    1000

            11 Jane                           j2
    1000

            12 Dane                           j1
    1200

            11 Jane                           j1
    1000

            13 Kate                           j0
    1300

    删除后:

    SQL> select * from manager;

         MGRNO MNAME                          JOB
    ---------- ------------------------------ ------------------------------
    SALARY
    ---------------------------------------------------------------------------
            11 Jane                           j1
    1000

            12 Dane                           j1
    1200

            13 Kate                           j0
    1300


    已选择3行。

    利用不等于

    delete from  manager  a where ROWID != (select  MAX(ROWID)

    from manager b where a.mgrno =b.mgrno)

    利用临时表:

    创建一个临时表 tem_manager , 该表中存放的数据和表manager 的相同,只是该表中不存放重复记录。

    create table tem_manager

    as

    (select  distinct mgrno,mname,job,salary from manager);

    然后删除表manager中的数据:

    truncate table manager;

    把临时表中的数据插入到原来的表manager中:

    insert into  manager

    select * from tem_manager;

  • 相关阅读:
    OpenCL多次循环执行内核的一个简单样例
    Visual Studio2013的C语言编译器对C99标准的支持情况
    关于OpenCL中三重循环的执行次序
    jQuery判断复选框是否勾选
    JS动态增加删除UL节点LI
    Javascript玩转继承(三)
    Javascript玩转继承(二)
    Javascript玩转继承(一)
    js方法call和apply实例解析
    简单实用的php分页函数代码
  • 原文地址:https://www.cnblogs.com/happinessqi/p/3348935.html
Copyright © 2011-2022 走看看