急!!怎么删除ACCESS中的重复记录
发布网友
发布时间:2022-05-03 18:57
我来回答
共5个回答
懂视网
时间:2022-05-03 23:19
以下就重复记录删除的问题作一阐述。
有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用
select distinct * from tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
代码如下:
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。
2、这类重复问题通常要求保留重复记录中的第一条记录,操作方法如下
假设有重复的字段为Name,Address,要求得到这两个字段唯一的结果集
代码如下:
select identity(int,1,1) as autoID, * into #Tmp from tableName
select min(autoID) as autoID into #Tmp2 from #Tmp group by Name,autoID
select * from #Tmp where autoID in(select autoID from #tmp2)
最后一个select即得到了Name,Address不重复的结果集(但多了一个autoID字段,实际写时可以写在select子句中省去此列)
您可能感兴趣的文章:
SQL语句实现删除重复记录并只保留一条MySQL数据库中删除重复记录的方法总结[推荐]SqlServer2005中使用row_number()在一个查询中删除重复记录的方法SQL Server2008中删除重复记录的方法分享sqlserver 删除重复记录处理(转)SqlServer 2005中使用row_number()在一个查询中删除重复记录mysql删除重复记录语句的方法SQL对冗余数据的删除重复记录只保留单条的说明有用的SQL语句(删除重复记录,收缩日志)sql 删除表中的重复记录
热心网友
时间:2022-05-03 20:27
首先备份你的数据库. 然后尝试下面的方法.
从表中删除重复记录需要两个步骤.
第一步,创建包含重复项的表结构的副本,然后生成所有包含重复项的字段的主键.
第二步,创建并执行由原始表到新表的追加查询。因为主键字段不能包含重复记录,所以此过程将生成一个不含重复记录的表.
复制表并生成包含重复项的字段的主键
操作方法:
在“数据库”窗口中,单击“对象”下的“表”
单击要删除重复记录的表名称。
单击工具栏上的“复制”
单击工具栏上的“粘贴”。
在“粘贴表方式”对话框中,键入复制表的名字,再单击“只粘贴结构”选项,然后单击“确定”按钮。
在“设计”视图中打开新表,然后在复制的表中选择包含重复项的字段。
单击工具栏上的“主键”按钮 ,以便根据选定的字段创建主键。
保存并关闭表。
在新表中追加唯一值记录。
操作方法:
根据包含重复项的原始表新建一个查询。
在查询“设计”视图中,单击工具栏上的“查询类型”,再单击“追加查询”。
在“追加”对话框中,在“表名称”列表中单击新表的名称,然后单击“确定”。
将星号 (*) 拖到查询设计网格,使新表包含原始表的所有字段。
单击工具栏上的“运行”。
收到追加行的信息时,请单击“是”按钮。
收到 Microsoft Access 不能在追加查询中添加全部记录的信息时,请单击“是”按钮。这次仅将有唯一值的记录传送到新表中,并丢弃了重复项。
打开表查看结果。
确定新表有正确的唯一记录后,就可以删除原始表,然后使用原始表名来为新表重新命名。
我是学MSSQL的,所以对MSSQL更熟悉
但Access也略知一二 希望这个方法能够帮到你.
再次提醒,请先备份你的mdb
建议:
为了以后避免这些不必要的问题.
可以把不允许重复的字段设为主键.
热心网友
时间:2022-05-03 21:45
access有绿色解破版的,删除了就下载一个,5分钟搞定
热心网友
时间:2022-05-03 23:19
再多加一个字断id自动编号
然后就sql语句逐条匹配,值相等的就删掉其中一条
热心网友
时间:2022-05-04 01:11
select distinct * from table;