• 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;

  • 相关阅读:
    .Net Core使用xxljob定时任务
    Nginx分片限流实现
    [LeetCode] 2288. Apply Discount to Prices
    [LintCode] 183. Wood Cut
    [LeetCode] 1995. Count Special Quadruplets
    [LeetCode] 1534. Count Good Triplets
    [LeetCode] 2280. Minimum Lines to Represent a Line Chart
    【pandas官方文档用户指南】2.数据结构简介
    【pandas官方文档新手教程】:2.十个入门问题
    【pandas官方文档用户指南】1.十分钟入门
  • 原文地址:https://www.cnblogs.com/happinessqi/p/3348935.html
Copyright © 2020-2023  润新知