02 06 14 17 22 31 -02
04 09 13 25 27 32 -06
………
03 07 13 22 28 29 -13
04 09 13 25 27 32 -06
你一说,我就会有灵感。呵呵!
就你的具体情况来看,第2条记录与倒数第1条记录是重复的;假如添加新的记录09 04 25 13 27 32 -06也应该是第2条记录的重复记录。这样的话,判断比较麻烦。
假如记录的顺序一样、值也一样,算重复记录的话,可以写成SELECT-SQL形式,也可以写成先进行唯一索引后复制的形式
假如考虑记录的值,而不管排列顺序,就像集合相等的概念那样,这样去掉重复记录稍微麻烦一点.先生成一个安排好顺序的关键字段,再进行唯一索引,最后进行复制。
以下是我做的一个,直接在原库里查找重复数据,结果我试了一下,如果库里有10000条以上记录的话,排除一次要半个小时以上,呵呵,差点晕倒。
SET DELETED ON
USE ssqjxsj_dat.dbf
Dimension gaArrayOne(6)
GO TOP
xx=0
jsq=1
c6HH1=''
c6HH2=''
DO while .NOT.EOF()
SCATTER TO gaArrayOne
For i=1 To 6
c6HH1=c6HH1+ALLTRIM(STR(gaArrayOne(i)))
ENDFOR
SKIP
c6HH2=''
DO while .NOT.EOF()
If c6HH1=c6HH2
DELETE
xx=xx+1 &&记录已删除的数量。
SKIP
SCATTER TO gaArrayOne
For i=1 To 6
c6HH2=c6HH2+ALLTRIM(STR(gaArrayOne(i)))
ENDFOR
ELSE
SKIP
SCATTER TO gaArrayOne
For i=1 To 6
c6HH2=c6HH2+ALLTRIM(STR(gaArrayOne(i)))
ENDFOR
ENDIF
ENDDO
? xx
jsq=jsq+1
GO jsq
ENDDO