| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1985 人关注过本帖, 1 人收藏
标题:如何把数据库中相同姓名的记录删掉?
只看楼主 加入收藏
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
以下是引用cxc2437在2013-4-25 15:30:36的发言:

忘了说了老大,我的是6.0版本
VFP6.0版本
删除所有d13重复的记录
close data
use 1.dbf alia t1 EXCLUSIVE  in 0
delete from t1 where d13 in (select d13 from t1 group by d13 HAVING count(*)>1)
select t1
pack
close data
-----------------
删除d13重复的记录,仅保留其中一条
close data
use 1.dbf alia t1 EXCLUSIVE  in 0
SELECT * FROM t1  group by d13 INTO CURSOR TMP
ZAP IN t1
SELECT t1
APPE FROM (DBF('TMP'))
close data








[ 本帖最后由 kiff 于 2013-4-26 08:31 编辑 ]
2013-04-25 15:36
qjbzjp
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:尧的故乡
等 级:贵宾
威 望:48
帖 子:1914
专家分:4397
注 册:2007-3-14
收藏
得分:0 
假如删除“常馨月”:
DELETE ALL for 姓名="常馨月"    &&删除所有的
**仅保留第一个
LOCATE for 姓名="常馨月"
n=RECNO()
DELETE ALL for 姓名="常馨月" .and. RECNO()<>n

**以上只是打上删除标记,要物理删除还需:pack命令。

相互学习,互相交流,共同提高。
2013-04-25 15:41
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用cxc2437在2013-4-25 15:20:07的发言:

我这数据库里面六千多条记录,相同姓名的就五百多条,这个命令需要一个一个的找啊
你不试 怎么知道

打开表
dele all for 姓名字段=="XXX"
2013-04-25 16:05
cxc2437
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-3-19
收藏
得分:0 
回复 11楼 kiff
显示文件“in.dbf”不存在,是怎么回事啊老大
2013-04-25 16:12
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
以下是引用cxc2437在2013-4-25 16:12:49的发言:

显示文件“in.dbf”不存在,是怎么回事啊老大
in.dbf 是你的数据表吗,要指定路径啊
2013-04-25 16:15
cxc2437
Rank: 1
等 级:新手上路
帖 子:21
专家分:0
注 册:2013-3-19
收藏
得分:0 
pack in t1
应该是这句话有问题
2013-04-25 16:16
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:0 
以下是引用cxc2437在2013-4-25 16:16:12的发言:

pack in t1
应该是这句话有问题
那就改
select t1
pack
2013-04-25 16:17
taifu945
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:80
帖 子:1545
专家分:3298
注 册:2012-7-6
收藏
得分:3 
需要那么复杂吗?可以换种思路呀。以不需要保留重复值为例:
SELECT * FROM 表名 ;
   WHERE D13 NOT IN ;
      (SELECT D13 FROM 表名 ;
          GROUP BY D13 HAVING COUNT(D13)>1) ;
   INTO TABLE 表名2
USE IN 表名
ERASE 表名
RENAME TABLE 表名2 TO 表名
2013-04-25 17:05
kiff
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:广州
等 级:贵宾
威 望:46
帖 子:756
专家分:2531
注 册:2013-1-30
收藏
得分:4 
在VFP6。O使用 SQL语句真是件麻烦事,哪些能用,哪些不能用,有时真的搞得不清楚。

2013-04-25 17:25
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
收藏
得分:0 
dele from 1.dbf where d123=(select max(d123) from 1.dbf group by 其它字段)试下
2013-04-25 19:37
快速回复:如何把数据库中相同姓名的记录删掉?
数据加载中...
 
   



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

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