`
lcywjvb
  • 浏览: 59151 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

实例介绍删除数据库中重复数据的几个方法

阅读更多
作者: ddvip,  出处:IT专家网论坛, 责任编辑: 陈子琪,
2009-09-24 07:00
  实例介绍删除数据库中重复数据的两个方法:

  第一个方法:


  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 

  第二个方法:

  一般情况下有两个意义上的重复记录,一是完全重复的记录,也即所有字段均重复的记录,二是部分关键字段重复的记录,比如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.这类重复问题一般要求保留重复记录中的第1条记录,假设有重复的字段为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子句中省去此列)



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ZOU_SEAFARER/archive/2009/09/25/4592519.aspx
分享到:
评论

相关推荐

    C#开发实例大全(基础卷).软件开发技术联盟(带详细书签) PDF 下载

    《C#开发实例大全(基础卷)》筛选、汇集了C#开发从基础知识到高级应用各个层面约600个实例及源代码,每个实例都按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析解读。全书分6篇共25章,主要...

    Delphi开发范例宝典目录

    实例066 将数据库数据添加到组合框中 78 实例067 借助绑定控件实现数据选择录入 79 2.5 TListView控件应用典型实例 80 实例068 TListView列表拒绝添加重复信息 80 实例069 将数据库数据添加到TListView控件...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Java进行桌面程序开发各个方面的知识和技巧,主要包括Java语法与面向对象技术、Java高级应用、窗体与控件应用、文件操作典型应用和数据库...

    达梦数据库_SQL语言手册

    数据库快照删除语句 第章数据查询语句和全文检索语句 单表查询 简单查询 带条件查询 集函数 情况表达式 连接查询 子查询 标量子查询 表子查询 派生表子查询 定量比较 带 谓词的子查询 多列表子查询 ...

    数据库设计范式(实例).doc

    但这 关系肯定有大量的冗余,有关学生所在的几个属性DNO,DNAME,LOCATION将重复存储, 插入,删除和修改时也将产生类似以上例的情况。 原因:关系中存在传递依赖造成的。即SNO -> DNO。 而DNO -> SNO却不存在,DNO ...

    mysql优化小技巧之去除重复项实现方法分析【百万级数据】

    本文实例讲述了mysql优化小技巧之去除重复项实现方法。分享给大家供大家参考,具体如下: 说到这个去重,脑仁不禁得一疼,尤其是出具量比较大的时候。毕竟咱不是专业的DB,所以嘞,只能自己弄一下适合自己去重方法了...

    数据库设计范式.doc

    关系数据库的几种设计范式介绍 1 第一范式(1NF) 在任何一个关系数据库中,第一范式(1NF)是对关系模式的基本要求,不满足第一范式 (1NF)的数据库就不是关系数据库。 所谓第一范式(1NF)是指数据库表的每一列...

    java范例开发大全

    实例80 如何使用charAt()方法计算重复字符 109 实例81 按字母顺序比较大小 110 实例82 首尾相连 111 实例83 字符串间的比较 112 实例84 字符集的解码方法 113 实例85 寻找指定字符第一次出现的位置 114 实例86 寻找...

Global site tag (gtag.js) - Google Analytics