有关重复记录的删除(SQL SERVER)

2016-01-29 20:17 3 1 收藏

有关重复记录的删除(SQL SERVER),有关重复记录的删除(SQL SERVER)

【 tulaoshi.com - ASP 】

以下就重复记录删除的问题作一阐述。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。
1、对于第一种重复,比较容易解决,使用
select distinct * from tableName
就可以得到无重复记录的结果集。
如果该表需要删除重复的记录(重复记录保留1条),可以按以下方法删除
select distinct * into #Tmp from tableName
drop table tableName
select * into tableName from #Tmp
drop table #Tmp
发生这种重复的原因是表设计不周产生的,增加唯一索引列即可解决。

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/asp/)

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子句中省去此列)

来源:https://www.tulaoshi.com/n/20160129/1510951.html

延伸阅读
标签: 办公软件
在Excel中录入数据后,我们一般用高级筛选来处理删除重复的记录,Excel 2007保留了这个功能,同时又增加了一个“删除重复项”按钮,使操作更加简单、灵活。 一、传统方法:使用高级筛选 步骤如下: 1.单击数据区,选中其中的任一个单元格。如果只是针对其中部分字段和记录进行筛选,可先选中这部分区域。注意:只对连续选中的矩形区域有效...
我们可以通过下述方法删除重复记录: 例:表名:dbo.品种描述$,字段包括:ID_PK,品种名称,性状标准编号,代码,首先创建一个和原表结构一样的表: 代码如下: select * into tmpA from dbo.品种描述$ where 1=2--创建完毕 在数据表中,品种名称,性状标准编号这两个字段不能有重复值,执行下述脚本: declare @VarietyName nvarchar(255), ...
标签: 电脑入门
在Excel中录入数据后,我们一般用高级筛选来处理删除重复的记录,Excel2007保留了这个功能,同时又增加了一个删除重复项按钮,使操作更加简单、灵活。 一、传统方法:使用高级筛选 步骤如下: 1.单击数据区,选中其中的任一个单元格。如果只是针对其中部分字段和记录进行筛选,可先选中这部分区域。注意:只对连续选中的矩形区域有效。 2....
数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置…… 方法一 : declare @max integer,@id integer declare cur_rows cursor local for select 主字段,count(*) from 表名 group by 主字段 having count(*) 1 open cur_rows fetch cur_rows into @id,@max while fetch_st...
我在ACEESS做了一个窗体,内含一个子窗体,子窗体的控件

经验教程

763

收藏

64
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部