| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3506 人关注过本帖
标题:[求助]删除重复记录的问题!
只看楼主 加入收藏
jianhui_1234
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2005-11-17
收藏
 问题点数:0 回复次数:11 
[求助]删除重复记录的问题!
字段名 a b c d

aa bb cc dd
bb cc dd ee
aa bb cc dd
bb cc dd ee

请问高手如何用do while not eof()语句删除重复记录!
搜索更多相关主题的帖子: 记录 删除 
2006-07-15 11:02
greenyzh
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2006-5-16
收藏
得分:0 

如果用到索引就可一使用seek 或find进行查找,并依据找到结果选择删除。如果没有索引,可使用locate for 查找,然后配合cont就可以找到重复的记录,然后你就可以选择删除了。关键是定位数据表中记录的位置。

2006-07-15 19:37
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 

USE 表
DO WHILE NOT EOF()
N=RECNO()
M=A
LOCATE ALL FOR A=M FOR RECNO()>N
IF !EOF()
DELETE ALL FOR A=M FOR RECNO()>N
ENDIF
GO TOP
SKIP N-1
ENDDO
PACK


感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-07-16 00:32
fjsys
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-8-10
收藏
得分:0 
select * from 表名 gropu by 字段 into dbf 新表名

2006-08-10 09:29
啸凡
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1356
专家分:885
注 册:2006-2-22
收藏
得分:0 
老虎:以下两句我看不懂,请指教!
LOCATE ALL FOR A=M FOR RECNO()>N
DELETE ALL FOR A=M FOR RECNO()>N

两人行已有我师……
2006-08-10 16:19
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
以下是引用Tiger5392在2006-7-16 0:32:32的发言:

USE 表
DO WHILE NOT EOF()
N=RECNO()
M=A
LOCATE ALL FOR A=M FOR RECNO()>N
IF !EOF()
DELETE ALL FOR A=M FOR RECNO()>N
ENDIF
GO TOP
SKIP N-1
ENDDO
PACK

呵呵,如果用这种方法,数据不用多,几万条你试试速度


有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-08-10 17:48
fown
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:58
帖 子:1229
专家分:171
注 册:2005-5-26
收藏
得分:0 
假如你的表的名字叫表名,你试一下下面的方法,如果几万条记录的话,速度应该还算可以吧

IF USED ("表名.DBF")
SELECT 表名
USE 表名 EXCLUSIVE
ELSE
USE 表名 EXCLUSIVE
ENDIF
SELECT * DISTINCT FROM 表名 INTO dbf 临时表名
SELECT 临时表名
brow
SELECT 表名
DELETE ALL
PACK
APPEND FROM 临时表名
BROWSE

有人说VFP不行了,我想说,你连VFP十分之一的功能都不会用,你怎么知道VFP不行?本人拒绝回答学生的问题我回答问题一般情况下只提供思路不提供代码,请理解
2006-08-10 18:30
wzxc
Rank: 9Rank: 9Rank: 9
来 自:齐鲁大地
等 级:贵宾
威 望:39
帖 子:985
专家分:1296
注 册:2006-4-25
收藏
得分:0 
以下是引用啸凡在2006-8-10 16:19:35的发言:
老虎:以下两句我看不懂,请指教!
LOCATE ALL FOR A=M FOR RECNO()>N
DELETE ALL FOR A=M FOR RECNO()>N

啸凡:
大老虎打了个盹!
累啦!


认真看书学习,弄通Fox主义。
2006-08-10 21:12
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
人家问的是用DO WHILE NOT EOF()语句。

感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-08-10 21:15
Tiger5392
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:88
帖 子:2775
专家分:2237
注 册:2006-5-17
收藏
得分:0 
以下是引用啸凡在2006-8-10 16:19:35的发言:
老虎:以下两句我看不懂,请指教!
LOCATE ALL FOR A=M FOR RECNO()>N
DELETE ALL FOR A=M FOR RECNO()>N

抱歉,写错了。
LOCATE ALL FOR A=M AND RECNO()>N
DELETE ALL FOR A=M AND RECNO()>N


感言:学以致用。 博客:http://www./blog/user14/65009/index.shtml email:Tiger5392@
2006-08-10 21:40
快速回复:[求助]删除重复记录的问题!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017885 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved