您的位置:首页 > 数据库 > Oracle

oracle 删除重复记录的高效方法

2017-07-11 11:50 393 查看
1、小部分删除重复

 DELETE T

  WHERE (COL1,COL2) IN

  (SELECT COL1,COL2 FROM T GROUP BY COL1,COL2 HAVING COUNT(*) > 1)

  AND

  ROWID NOT IN

  (SELECT MIN(ROWID) FROM T GROUP BY COL1,COL2 HAVING COUNT(*) > 1)

  

  2、大部份记录有重复记录

  

  DELETE T WHERE ROWID NOT IN

  (SELECT MIN(ROWID) FROM T GROUP BY COL1,COL2)

  

  3、其他写法

  

  DELETE T WHERE ROWID IN

  (SELECT A.ROWID FROM T A,T B

  WHERE A.COL1=B.COL1 AND A.COL2 = B.COL2 AND A.ROWID > B.ROWID)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  大批量删除数据