经典的删除重复记录问题总结。
最近有学生在问删除表中重复记录问题,本人对此问题曾做过一些研究,现在做一个总结,算是抛砖引玉吧。另外本文只讨论用SQL语句来解决问题,至于用VFP代码来做,以前已有前辈做了完整的示例,就不重复了。
*--------------------正文--------------------*
本文总结了四种常用的部分删除重复记录(不全删除,有条件的保留)场景:
有一个表 [jlzz1] ,原始记录如下:
情况介绍完毕。下面开始出题:
1、 以学籍号为判断依据,相同学籍号的重复记录,删除其最后一条。
程序代码:
DELETE FROM jlzz1 ; WHERE jlzz1.id IN ( ; SELECT m2.mid ; FROM ( ; SELECT xjh, ; xm, ; max(id) AS mid ; FROM jlzz1 ; WHERE jlzz1.xjh IN ( ; SELECT cChongfu.xjh ; FROM ( ; SELECT jlzz1.xjh, ; jlzz1.xm, ; count( * ) AS ts ; FROM jlzz1 ; GROUP BY xjh, ; xm ; HAVING ts > 1 ; ) AS cChongfu ; ) GROUP BY xjh, ; xm ; ) AS m2 )运行后效果: