【问题标题】:How to delete mutiple rows from Oracle SQL with exact same data [duplicate]如何从具有完全相同数据的 Oracle SQL 中删除多行 [重复]
【发布时间】:2020-02-08 19:27:24
【问题描述】:

我有下表:-

CREATE TABLE DATA 
(   
"FName" VARCHAR2(30 CHAR) NOT NULL ENABLE, 
"LName" VARCHAR2(30 CHAR) NOT NULL ENABLE, 
"BIRTH_DATE" DATE, 
"USERNAME" VARCHAR2(50 CHAR), 
"EXTRA_INFO" VARCHAR2(2000 CHAR), 
"START_DATE" DATE DEFAULT sysdate
);

此表的数据为:

FName    LName   BIRTH_DATE   EXTRA_INFO   START_DATE

aaa      bbbb    01.01.1980   extra        01.01.2000
aaa      bbbb    01.01.1980   extra        01.01.2000     
aaa      bbbb    01.01.1980   extra        01.01.2000 
fname    lname   02.02.1970   something    02.02.1990          

所以我想多次删除所有具有完全相同条目的行。如何通过 SQL 查询删除它们?

【问题讨论】:

    标签: sql oracle duplicates sql-delete


    【解决方案1】:

    这是一种选择:

    SQL> select * from data;
    
    FNAME      LNAME      BIRTH_DATE EXTRA_INFO
    ---------- ---------- ---------- ----------
    aaa        bbb        01.01.1980 extra
    aaa        bbb        01.01.1980 extra
    aaa        bbb        01.01.1980 extra
    fna        ccx        02.02.1970 smthi
    
    SQL> delete from data a
      2  where rowid > (select min(rowid)
      3                 from data b
      4                 where a.fname      = b.fname
      5                   and a.lname      = b.lname
      6                   and a.birth_date = b.birth_date
      7                   and a.extra_info = b.extra_info
      8                );
    
    2 rows deleted.
    
    SQL> select * From data;
    
    FNAME      LNAME      BIRTH_DATE EXTRA_INFO
    ---------- ---------- ---------- ----------
    aaa        bbb        01.01.1980 extra
    fna        ccx        02.02.1970 smthi
    
    SQL>
    

    【讨论】:

    • where rowid > (select min(rowid) 不会全部删除。它只会删除所有重复的行。这意味着还剩下 1 行。我想全部删除。所以我尝试了 where rowid >= (select min(rowid)
    • 啊,全部。读得不够仔细,抱歉。
    • 谢谢,我从您的查询中得到了所需的提示。
    • 不客气;我很高兴你做到了。
    猜你喜欢
    • 2020-07-27
    • 2021-06-01
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 2020-12-21
    • 2017-03-02
    • 2011-03-21
    相关资源
    最近更新 更多