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 ...
随机推荐
- oracle备份与还原(导入导出)
Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp相当于oracle数据还原与备份.说明:大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的 ...
- 获取camera截屏图片
Camera camera; SpriteRenderer sprRender; Texture2D t2d = New Texture2D(1300, 760, TextureFormat.RGB2 ...
- Json对象和Json字符串之间的转换
json字符串转json对象,调用parse方法: var b='{"name":"2323","sex":"afasdf&quo ...
- Redisson入门
Redisson入门 Author:Ricky Date:2017-04-24 Redisson概述 Redisson是架设在Redis基础上的一个Java驻内存数据网格(In-Memory Dat ...
- javaEE-string家族三大流氓
最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringBuilder的东西,现在整理一下. 关于这三个类在字符串处理中的位置不言而喻,那 ...
- js判断字符串是否全为空(使用trim函数/正则表达式)
我们需要判断用户输入的是否全是空格,可以使用以下方法: 方法一: 使用trim() /* 使用String.trim()函数,来判断字符串是否全为空*/ function kongge1(test) ...
- 基础并查集poj2236
An earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set up a wi ...
- Struts2拦截器登录验证
Struts2拦截器 Struts2拦截器的概念和Spring Mvc拦截器一样. Struts2拦截器是在访问某个Action或Action的某个方法,字段之前或之后实施拦截,并且Struts2拦截 ...
- 微信小程序(组件demo)以及预览方法:(小程序交流群:604788754)
1. 获取微信小程序的 AppID 登录 https://mp.weixin.qq.com ,就可以在网站的"设置"-"开发者设置"中,查看到微信小程序的 Ap ...
- angularjs 路由模块
1. <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title& ...