经典的删除重复记录问题总结。
最近有学生在问删除表中重复记录问题,本人对此问题曾做过一些研究,现在做一个总结,算是抛砖引玉吧。另外本文只讨论用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 )运行后效果:



学习思路,多谢分享!
