sqlserver删除重复的数据
分享链接:
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删除重复的数据的更多相关文章
- SqlServer删除重复数据的方法
方法一 declare @max integer,@id integer open cur_rows fetch cur_rows into @id,@max begin set rowcount @ ...
- 《SQLServer删除重复数据的方法》
方法一: declare @max integer,@id integer open cur_rows fetch cur_rows into @id,@max begin set rowcount ...
- SQL:一句话删除重复的数据
--构造原始数据 )) --插入数据 INSERT INTO #T (N)VALUES ('A') --方式一:一句话删除重复数据(无主键) --方式二:采用CTQ,with的写法删除 ;
- c++ 链表删除重复的数据
//List.h #include <iostream> typedef int dataType; struct Node{ Node():data(),pNextNode(NULL){ ...
- SqlServer 删除重复记录
在给一个客户上线的系统里发现有一张表里出现了重复的数据,结果通过排查代码发现确实业务逻辑有问题,在修改了代码后需要将为数据库里的重复数据删除 在CSDN上找到解决方案,对线上的数据库尽量不要执行删除操 ...
- ORACLE 删除重复的数据
内容转自:https://www.cnblogs.com/zfox2017/p/7676237.html 查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据 ...
- sqlserver删除重复数据
select identity(int,1,1) as autoID, * into #Tmp from [QYTS_QiYeCecdb]select min(autoID) as autoID in ...
- SQLServer一次性删除重复的数据
delete from [GCPCore].[GCP.Product].[CityMall] where AreaID in(select AreaID from [GCPCore].[GCP.Pr ...
- SQLServer删除重复行
1.如果有ID字段,就是具有唯一性的字段 delect table where id not in ( select max(id) from table group by col1,col2,col ...
随机推荐
- Sql server DATEADD日期函数的使用
DATEADD日期函数 DATEADD() 函数在日期中添加或减去指定的时间间隔. 日:在当前日期上加两天 , ,'2014-12-30') 月:在当前日期上加两个月 , , 年:在当前日期上加两年 ...
- 使用Java注解来简化你的代码
注解(Annotation)就是一种标签,可以插入到源代码中,我们的编译器可以对他们进行逻辑判断,或者我们可以自己写一个工具方法来读取我们源代码中的注解信息,从而实现某种操作.需要申明一点, ...
- html 初始化
// html 初始化 <!DOCTYPE html><html lang="en"><head> <meta charset=&quo ...
- 读书笔记 effective c++ Item 27 尽量少使用转型(casting)
C++设计的规则是用来保证使类型相关的错误不再可能出现.理论上来说,如果你的程序能够很干净的通过编译,它就不会尝试在任何对象上执行任何不安全或无意义的操作.这个保证很有价值,不要轻易放弃它. 不幸的是 ...
- C语言学习第五章
今天要进行一个重要元素数组的学习了.这一章要掌握什么是数组,数组怎么样命名,数组怎么样使用,以及一些常见的错误和需要注意的事项. 一. 数组的基本概念 数组是可以在内存中连续存储多个元素的结 ...
- EverythingAboutJava
1 GC gabage collection 垃圾回收Java GC系列(1):Java垃圾回收简介 http://mp.weixin.qq.com/s?src=3×tamp=149 ...
- 【算法系列学习】Dijkstra求最短路 [kuangbin带你飞]专题四 最短路练习 D - Silver Cow Party
https://vjudge.net/contest/66569#problem/D trick:1~N各点到X可以通过转置变为X到1~N各点 #include<iostream> #in ...
- 一个使用openGL渲染的炫丽Android动画库
android-magic-surface-view 这是一个 android 动画特效库, 可以实现各种炫酷动画. github地址: https://github.com/gplibs/andro ...
- Java面试小试题
面试是我们每个人都要经历的事情,大部分人且不止一次,这里给大家总结最新的2016年面试题,让大家在2017年找工作时候能够事半功倍. 1 Switch能否用string做参数? a.在 Java 7 ...
- 二分图的最大匹配——最大流EK算法
序: 既然是个图,并且求边数的最大值.那么这就可以转化为网络流的求最大流问题. 只需要将源点与其中一子集的所有节点相连,汇点与另一子集的所有节点相连,将所有弧的流量限制置为1,那么最大流 == 最大匹 ...