access目前不具备自动删除重复项的功能,但可以轻易的找到重复项:
如果量不大,可以按照如上的办法把重复项找到,在逐一删除。
如果重复项非常多,可以先按照如上的办法找到重复项,然后建立一个删除查询,筛选条件是包含在刚才查询结果的项目,就完成了您所说的工作了。
这个估计不适合你啊
先是,access这东西效率本来就不高
对于你来说
第一步
select
a
into
tmp
from
ceshi
a,
(select
min(id)
minid,wenben
from
ceshi
group
by
wenben)
b
where
aid=bminid
and
awenben=bwenben
第二步
delete
from
ceshi
第三步
insert
into
ceshi
select
from
tmp
第四步
drop
table
tmp
我把你发的第一和第二步合并成我这里的第一步了,并加了一个最后第四步,把临时表删除
你先做好备份再测试,否则数据没法恢复
你给的信息不够详细,可以用group by 后面的所有字段不包括rowid
select min(rowid),后面的所有字段 from table
group by 后面的所有字段
把这些数据复制到另一个表,将原表数据删除,再将这些数据COPY回
即然不想有重复项就建个主键不就行了
或者加个自动编号列id,然后
comexecute
"delete
from
msg
where
id
not
in(select
min(id)as
id
from
msg
group
by
tit)"
在大的数据库应用中,经常因为各种原因遇到重复的记录,造成数据的冗余和维护上的不便。
1用rowid方法
2用group by方法
3用distinct方法
1。用rowid方法
据据oracle带的rowid属性,进行判断,是否存在重复,语句如下:
查数据:
select from table1 a where rowid !=(select max(rowid)
from table1 b where aname1=bname1 and aname2=bname2)
删数据:
delete from table1 a where rowid !=(select max(rowid)
from table1 b where aname1=bname1 and aname2=bname2)
2group by方法
查数据:
select count(num), max(name) from student --列出重复的记录数,并列出他的name属性
group by num
having count(num) >1 --按num分组后找出表中num列重复,即出现次数大于一次
删数据:
delete from student
group by num
having count(num) >1
这样的话就把所有重复的都删除了。
3用distinct方法 -对于小的表比较有用
create table table_new as select distinct from table1 minux
truncate table table1;
insert into table1 select from table_new;
select sum(bag_weight),sum(bag_total) from tdespatch
以上就是关于如何将access数据表中的重复记录项自动删除全部的内容,包括:如何将access数据表中的重复记录项自动删除、access数据库如何删除文本字段中重复的文本行、如何删除ACCESS 重复数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)