SQL Server中删除重复数据的几个方法

2016-02-19 19:45 3 1 收藏

下面图老师小编跟大家分享SQL Server中删除重复数据的几个方法,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - 编程语言 】

  数据库的使用过程中由于程序方面的问题有时候会碰到重复数据,重复数据导致了数据库部分设置不能正确设置……

  方法一 :

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_status=0
begin
select @max = @max -1
set rowcount @max
delete from 表名 where 主字段 = @id
fetch cur_rows into @id,@max
end
close cur_rows
set rowcount 0   

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

  方法二 :

   有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如Name字段重复,而其他字段不一定重复或都重复可以忽略。

   1、对于第一种重复,比较容易解决,使用

select distinct * from tableName

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

   就可以得到无重复记录的结果集。

   如果该表需要删除重复的记录(重复记录保留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子句中省去此列)

来源:https://www.tulaoshi.com/n/20160219/1621698.html

延伸阅读
标签: 电脑入门
在Excel以前的版本中,可以通过高级筛选来删除重复记录,在Excle 2007中不但保留了高级筛选这个功能,而更为值得注意的是Excel 2007增加了一个删除重复项按钮,从而这项操作变得更加方便、快捷。 首先选择需要删除重复项的所有单元格。如果是要对所有数据进行这一操作,可以任意选择一个单元格。 在工具栏中选择数据选项卡,再单击排序与...
标签: 电脑入门
在Excel以前的版本中,可以通过高级筛选来删除重复记录,在Excle 2007中不但保留了高级筛选这个功能,而更为值得注意的是Excel 2007增加了一个删除重复项按钮,从而这项操作变得更加方便、快捷。 首先选择需要删除重复项的所有单元格。如果是要对所有数据进行这一操作,可以任意选择一个单元格。 在工具栏中选择数据选项卡,再单击排序与...
标签: 电脑入门
由于重复输入或粘贴等原因,Excel 2007工作表往往存在重复的数据或记录。如果工作表的规模比较大,手工查找和删除重复数据很难做到完全彻底。不过这个问题对Excel 2007来说则是小菜一碟,因为它的几个新功能可以轻松解决这类问题。 步骤/方法 1、标识重复数据 打开工作表,选中可能存在重复数据或记录的区域。单击开始选项卡中的条件格式...
在对数据库进行操作过程中我们可能会遇到这种情况,表中的数据可能重复出现,使我们对数据库的操作过程中带来很多的不便,那么怎么删除这些重复没有用的数据呢? 重复数据删除技术可以提供更大的备份容量,实现更长时间的数据保留,还能实现备份数据的持续验证,提高数据恢复服务水平,方便实现数据容灾等。 重复的数据可能有这样两种情况,...
通常情况下,一个我们在做一个产品的时候,一开始可能由于设计考虑不周或者程序写的不够严谨,某个字段上的值产生重复了,但是又必须去掉,这个时候就稍微麻烦了一点,直接加一个UNIQUE KEY肯定是不行了,因为会报错。 现在,我们来采用一种变通的办法,不过可能会丢失一些数据 :) 在这里,我们设定一个表,其结构如下: mysql ...

经验教程

835

收藏

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