CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  应用实例

删除问题

楼主arthurwu8109(点点滴滴)2004-09-01 12:49:26 在 MS-SQL Server / 应用实例 提问

请问如何删除一个表中的重复记录? 问题点数:20、回复次数:4Top

1 楼wanyingsong(豌豆)回复于 2004-09-01 12:51:11 得分 20

删除重复数据  
   
  一、具有主键的情况  
  a.具有唯一性的字段id(为唯一主键)  
  delete   table    
  where   id   not   in    
  (  
  select   max(id)   from   table   group   by   col1,col2,col3...  
  )  
  group   by   子句后跟的字段就是你用来判断重复的条件,如只有col1,  
  那么只要col1字段内容相同即表示记录相同。  
   
  b.具有联合主键  
  假设col1+','+col2+','...col5   为联合主键  
  select   *   from     table   where   col1+','+col2+','...col5   in   (  
      select   max(col1+','+col2+','...col5)   from   table    
  where   having   count(*)>1  
  group   by   col1,col2,col3,col4    
  )  
  group   by   子句后跟的字段就是你用来判断重复的条件,  
  如只有col1,那么只要col1字段内容相同即表示记录相同。  
   
  c:判断所有的字段  
      select   *   into   #aa   from   table   group   by   id1,id2,....  
      delete   table    
      insert   into   table    
      select   *   from   #aa  
   
  二、没有主键的情况  
   
  a:用临时表实现  
  select   identity(int,1,1)   as   id,*   into   #temp   from   ta  
  delete   #temp    
  where   id   not   in    
  (  
      select   max(id)   from   #   group   by   col1,col2,col3...  
  )  
  delete   table   ta  
  inset   into   ta(...)  
        select   .....   from   #temp  
   
  b:用改变表结构(加一个唯一字段)来实现  
  alter   table   表   add     newfield   int   identity(1,1)  
  delete   表  
  where   newfield   not   in  
  (  
  select   min(newfield)   from   表   group   by   除newfield外的所有字段  
  )  
   
  alter   table   表   drop   column   newfieldTop

2 楼arthurwu8109(点点滴滴)回复于 2004-09-01 12:52:51 得分 0

thank   you!Top

3 楼hdhai9451(☆新人类☆)回复于 2004-09-01 12:53:58 得分 0

光是刪除,  
  delete   from   table   where   主鍵 in    
  (select   主鍵   from   table   group   by   主鍵   having   count(*)>1)Top

4 楼zhushizu(从来就没有救世祖)回复于 2004-09-01 13:45:27 得分 0

是呀,我也是想了好久。。关注中。。。Top

相关问题

  • 关于删除?
  • 删除问题
  • 删除win98
  • GDI的删除
  • 删除文件
  • 删除session?
  • 删除问题???
  • 删除文件??
  • 删除问题
  • 文件删除

关键词

  • 字段
  • col
  • newfield
  • 删除
  • 主键
  • 相同
  • 主鍵
  • 表
  • group
  • 判断

得分解答快速导航

  • 帖主:arthurwu8109
  • wanyingsong

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo