分享链接:

http://blog.csdn.net/s630730701/article/details/52033018

http://blog.csdn.net/anya/article/details/6407280/

http://www.myexception.cn/sql-server/350450.html

http://blog.csdn.net/u012889638/article/details/46893855

http://bbs.csdn.net/topics/370190752

暂不直接说删除问题,先说明下sqlserver不支持多字段in。举个栗子:

select *

from vitae a
where (a.peopleId,a.seq)
    in (select peopleId,seq

    from vitae

     group by peopleId,seq

   having count(*) > 1)

这种在sqlserver中就会报语法错误。

解决方案:(1)

DELETE dbo.t_test

from dbo.t_test A

WHERE  A.b IN (select b

from dbo.t_test b group by b,c having COUNT(*)>1)

AND A.C IN (select c

from dbo.t_test b group by b,c having COUNT(*)>1)

and id not in(select MIN(id) from dbo.t_test  group by b,c having COUNT(1)>1)

注意使用这个语句当数据量很大或者字段很多的时候会运行不了,太浪费时间

解决方案(2)

DELETE A

--select A.*

FROM  dbo.t_test A ,dbo.t_test B

WHERE A.b=B.b AND A.c=B.c AND A.id !=B.id

and A.id NOT IN(select min(id) from dbo.t_test group by b,c)

我们写的 delete table where 和update table 都属于简写,全写应该是

delet A FROM TABLE A WEHRE

参考链接:http://blog.csdn.net/zyzlywq/article/details/6753648

注意delete 删除的表是紧跟在后面的表 A,在from中可以引入另一个表进行关联

我目前阶段最大的感受就是:版本问题,这真的很重要。再举个小栗子sqlserver不能使用limit

(3)使用distinct筛选出不重复的记录,保存,在删除原来的数据库。(这个我没试过,应该可以)

sqlserver删除重复的数据的更多相关文章

  1. SqlServer删除重复数据的方法

    方法一 declare @max integer,@id integer open cur_rows fetch cur_rows into @id,@max begin set rowcount @ ...

  2. 《SQLServer删除重复数据的方法》

    方法一: declare @max integer,@id integer open cur_rows fetch cur_rows into @id,@max begin set rowcount ...

  3. SQL:一句话删除重复的数据

    --构造原始数据 )) --插入数据 INSERT INTO #T (N)VALUES ('A') --方式一:一句话删除重复数据(无主键) --方式二:采用CTQ,with的写法删除 ;

  4. c++ 链表删除重复的数据

    //List.h #include <iostream> typedef int dataType; struct Node{ Node():data(),pNextNode(NULL){ ...

  5. SqlServer 删除重复记录

    在给一个客户上线的系统里发现有一张表里出现了重复的数据,结果通过排查代码发现确实业务逻辑有问题,在修改了代码后需要将为数据库里的重复数据删除 在CSDN上找到解决方案,对线上的数据库尽量不要执行删除操 ...

  6. ORACLE 删除重复的数据

    内容转自:https://www.cnblogs.com/zfox2017/p/7676237.html         查询及删除重复记录的SQL语句   1.查找表中多余的重复记录,重复记录是根据 ...

  7. sqlserver删除重复数据

    select identity(int,1,1) as autoID, * into #Tmp from [QYTS_QiYeCecdb]select min(autoID) as autoID in ...

  8. SQLServer一次性删除重复的数据

    delete from [GCPCore].[GCP.Product].[CityMall] where  AreaID in(select AreaID from [GCPCore].[GCP.Pr ...

  9. SQLServer删除重复行

    1.如果有ID字段,就是具有唯一性的字段 delect table where id not in ( select max(id) from table group by col1,col2,col ...

随机推荐

  1. JavaScript 函数的定义-调用、注意事项

    函数定义 函数语句定义 function(a,b){ return a+b; } 表达式定义 var add = function(a,b){return a+b}; //函数表达式可以包含名称,这在 ...

  2. USACO Section 1.1-1 Your Ride Is Here

    USACO 1.1-1 Your Ride Is Here 你的飞碟在这儿 众所周知,在每一个彗星后都有一只UFO.这些UFO时常来收集地球上的忠诚支持者.不幸的是,他们的飞碟每次出行都只能带上一组支 ...

  3. IT职场经纬 |阿里web前端面试考题,你能答出来几个?

    有很多小伙伴们特别关心面试Web前端开发工程师时,面试官都会问哪些问题.今天小卓把收集来的"阿里Web前端开发面试题"整理贴出来分享给大家伙看看,赶紧收藏起来做准备吧~~ 一.CS ...

  4. Mac 搭建svn本地服务端

    首先建立一个svn目录,位置可以随意,以桌面为例 $ mkdir ~/Desktop/svn 新建一个名为proj的目录作为一个repository $ cd ~/Desktop/svn $ mkdi ...

  5. Ext4中内存使用技巧的一点思考

           今天在分析Ext4文件系统的时候,看到两个函数ext4_kvzalloc()/ext4_kvfree(),想到以前在使用kzalloc()/kmalloc()带来的内存分配失败问题,不得 ...

  6. mysql行列转换方法总结

    这是一道行转列并且构造交叉表的问题: http://topic.csdn.net/u/20090530/23/0b782674-4b0b-4cf5-bc1a-e8914aaee5ab.html 数据样 ...

  7. jQuery选择器与CSS选择器

    1. 通过位置选择的几个操作: :first:默认情况下是相对整个页面来说的第一个,如:li:first表示整个页面的第一个li元素,而ul li:first表示整个页面的第一个li元素,并且是在ul ...

  8. ThinkPHP 框架模型

     1 在MainController.class.php 控制器中有一个test的方法,同时还有一个deng的方法,我想在test方法中使用deng方法  表示为 <?php namespace ...

  9. SOA与基于CDIF的API的联动

    几千年来,巴别塔的故事一直是人类面对的一个核心的困境.为了交流和沟通我们人类创造出语言,但沟通与交流仍然存在障碍……相同语言之间的沟通依语境的不同,尚且存在巨大的鸿沟,不同语言之间更是让人坐困愁城. ...

  10. MySQL事件调度器event的使用

    Q:假设,有一个需求,希望在某一个时刻系统调用一个begin end执行一下:十分钟以后执行一下begin end.亦或有一个需求,每个多长时间周期性执行begin end.那么这个时候该怎么办呢? ...