ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 一个简单删除重复数据的SQL语句

一个简单删除重复数据的SQL语句

原创 Linux操作系统 作者:Kenniu 时间:2019-05-07 21:36:07 0 删除 编辑

有时候我们想删除在表中的重复数据;

那你有没有想过一条简单的语句去处理呢.

如有个名叫TMM的Table,它有如下字段:

TMM(T01 Varchar2(10),T02 Varchar2(50),CDATE);

数据的存储如下:

T01  T02        CDATE

----- ----------- ------------

张三  ITPUB  2010/10/11

张三  ITPUB 2010/10/12

张三  ITPUB 2010/10/13

李四  ITPUB 2010/10/11

李四  ITPUB 2010/10/12

李四  ITPUB 2010/10/13

这有两种方式可以

第一种:

DELETE FROM TMM a
      WHERE CDATE < (SELECT   MAX (CDATE)
                         FROM TMM b
                        WHERE a.T01= b.T01 AND a.T02 = b.T02
                     GROUP BY T01,T02);

第二种:

DELETE FROM TMM a
      WHERE ROWID< (SELECT   MAX (ROWID)
                         FROM TMM b
                        WHERE a.T01= b.T01 AND a.T02 = b.T02
                     GROUP BY T01,T02);

有人要问啦,如果这个Table没有日期的字段怎么处理?那就直接用第二种;

如果就像LZ所列的Table,有日期字段,又怎么处理呢?我回答还是第二种;为什么呢?这个话题留给有心人;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30193/viewspace-682946/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 2010数据库大事记
下一篇: 2011年读的书
请登录后发表评论 登录
全部评论

注册时间:2002-11-29

  • 博文量
    146
  • 访问量
    133136