sing2550

如何删除同一张表中多行相同的数据但要保留一条

如何删除同一张表中多行相同的数据但要保留一条? 删除同一张表中有多行相同的数据,但是要保留一行的数据,如下表:
ID    name    cdefine1    cdefine2    cdefine3

1      aa       101         09-08       15:35

2      aa       101         09-09       15:37

3      bb       101         09-09       15:36

4      cc       204         09-12       14:35

5      cc       204         09-13       12:35

6      dd       255         09-05       15:55

7      ee       255         09-06       18:15

8      ee       211         09-14       11:24
现在我要删除表中字段name和cdefine1相同的数据,就是说只要字段name和cdefine1是一样的就删除,但是要保留一条,最终结果如下:
ID    name    cdefine1    cdefine2    cdefine3

1      aa       101         09-08       15:35

2      bb       101         09-09       15:36

3      cc       204         09-12       14:35

4      dd       255         09-05       15:55

5      ee       255         09-06       18:15

8      ee       211         09-14       11:24
 
------解决方案--------------------------------------------------------

SQL code
delete t
from tb t
where exists (select 1 from tb where name=t.name and cdefine1=t.cdefine1 and id>t.id)
 ------解决方案--------------------------------------------------------
SQL code
delete
 t
from 
 tb t
where 
 exists (select 1 from tb where name=t.name and cdefine1=t.cdefine1 and id>t.id)
发表于 2012-12-22 23:47  阿sing  阅读(352)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章: