SQL删除重复记录(针对于某几个字段相同)

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 05:05 点击:

例:表中有条六条记录。   其中张三和王五   的记录有重复  
  TableA  
  id     customer   PhoneNo  
  001   张三           777777  
  002   李四           444444  
  003   王五           555555  
  004   张三           777777  
  005   张三           777777  
  006   王五           555555  
  如何写一个sql语句将TableA变成如下  
  001   张三           777777  
  002   李四           444444  
  003   王五           555555

--测试环境  
  create   table   TableA   (   id   varchar(3),customer   varchar(5),PhoneNo   varchar(6))  
  insert   into   TableA   select   001,张三,777777  
  union   all   select   002,李四,444444  
  union   all   select   003,王五,555555  
  union   all   select   004,张三,777777  
  union   all   select   005,张三,777777  
  union   all   select   006,王五,555555

--结果

delete   TableA from   TableA T    where  

exists(  
select 1  from  tablea   where   customer=T.customer   and   phoneno=T.phoneno  
and  id < tt.id

)

 

--总结

该方法适用于有一个字段为自增性,例如本例中的:id

delete   表名 from   表名 as T    where  

exists(  
select 1  from  表名   where   字段A=T.字段A   and   字段B=T.字段B,(....)  
and  自增列 < T.自增列

)

 

    相关新闻>>

      发表评论
      请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
      用户名: 验证码:点击我更换图片
      最新评论 更多>>

      推荐热点

      • sql常见面试题
      • SQL SERVER 2005性能之跟踪
      • SQL编程(一)
      • LINUX上RMAN自动备份脚本
      • sql server面试题
      • 如何将多个SQL查询统计结果一次显示出来
      • 浅谈SQL Server中的事务日志(三)----在简单恢复模式下日志的角色
      • SQL小技巧系列 --- 行转列合并
      • sql server 列转行
      网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
      Copyright © 2008-2015 计算机技术学习交流网. 版权所有

      豫ICP备11007008号-1