首页 > Linux操作系统 > Linux操作系统 > 一个简单删除重复数据的SQL语句
有时候我们想删除在表中的重复数据;
那你有没有想过一条简单的语句去处理呢.
如有个名叫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/ ,如需转载,请注明出处,否则将追究法律责任。