Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

在13000多条记录里面删除重复的居然用了3分多钟?这正常吗?

河马!河马!  发表于:2018-10-11 10:28:15  
复制

各位老师前辈好,我是个刚入行的小菜。有一个表,E记录,表里就三个字段,E编号,E长度,E描述,我想删除E编号重复的记录(只留下一个唯一的),结果我写的语句是这样的:


DELETE id FROM E记录 WHERE id not in (select min(id) from E记录 group by E编号)


表里面原来大概有13000条记录,但是一运行之后,等了3分多钟才提示“即将删除xx条记录”

我在这个论坛查看了一下,有位大神说到,用exists代替in会好些,如果用exists的话,语句要怎么写?

或者哪位能给我一个更好的办法?

 

Top
河马!河马! 发表于:2018-10-11 10:50:40

能不能换个考虑

select distinct E编号 into #tmp from E记录

然后根据#tmp里面的E编号来对应 表:E记录 里面的其它字段?

然后清除E记录表,将#tmp的值写入E记录表

这个方法可行吗?




leoyoung 发表于:2018-10-12 12:34:17
建立一个与E表一样格式新表,新表E编号字段设置为关键字,然后将E表追加到新表。

随心飞去 发表于:2018-10-15 13:48:39

第一步:先建立查找重复编号查询,然后在查询中设置条件 =1 OR >1,    变成生成表查询(取名新表。

第二步:建立从新表把数据追加进原表查询

第三步顺序(不要搞错哦):

1、在窗体上用按钮执行生成表查询,2、执行清空原表命令,3、执行从新表追加数查询。

这样你的数据就整理完成了,按钮上的三个动作一所呵成,很快的

但原能帮到你



总记录:3篇  页次:1/1 9 1 :