总结:六种删除数据库重复行的方法

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

 SQL Server删除重复行是我们最常见的操作之一,下面就为您介绍六种适合不同情况的SQL Server删除重复行的方法,供您参考。
  1.如果有ID字段,就是具有唯一性的字段
  delect   table   where   id   not   in   (
  select   max(id)   from   table   group   by   col1,col2,col3……)
  group by 子句后跟的字段就是你用来判断重复的条件,如只有col1,那么只要col1字段内容相同即表示记录相同。
  2. 如果是判断所有字段也可以这样
  select   *   into   #aa   from   table   group   by   id1,id2,……
  delete   table insert   into   table select   *   from   #aa 3. 没有ID的情况
  select   identity(int,1,1)   as   id,*   into   #temp   from   tabel delect   #   where   id   not   in   (select   max(id)   from   #   group   by   col1,col2,col3……)
  delect   table inset   into   table(……)
  select   ……   from   #temp 4. 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字段内容相同即表示记录相同。
  5.
  select   identity(int,1,1)   as   id,*   into   #temp   from   tabel select   *   from     #temp   where   id   in   (select   max(id)   from   #emp   where   having   count(*)>1   group   by   col1,col2,col3……)
  6.
  select   distinct   *   into   #temp   from   tablename delete   tablename go insert   tablename   select   *   from   #temp   Sqlclub go drop   table   #temp

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

    推荐热点

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

    豫ICP备11007008号-1