小技巧教您轻松删除SQLServer重复行

SQL Server重复行问题相信大家都遇到过,下面就教您一个好方法,助您轻松删除SQL Server重复行,如果您遇到过SQL Server重复行问题,不妨一看。

成都创新互联公司专注为客户提供全方位的互联网综合服务,包含不限于网站设计、做网站、德州网络推广、成都微信小程序、德州网络营销、德州企业策划、德州品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联公司为所有大学生创业者提供德州建站搭建服务,24小时服务热线:18982081108,官方网址:www.cdcxhl.com

1、如果这张表没有主键(或者相同的行并没有不相同的内容列),则需要新建一个自增列,用来区分不同列。例如
alter   table [tablename] add [TID] int IDENTITY(1,1)
就是增加一个自增量的临时列TID。
为啥要用SQL语句?如果超过几十万行的话用SQL SERVER企业管理器的设计界面修改通常会超时。

2、然后就是关键了。给个例子就是我手上正要处理的IP地址所在地清单。近40万条数据,有SIP和EIP(开始IP和结束IP)记录重复,重复条数大概占1/5左右。对此情况用简单的一条SQL命令就搞定:
delete from query_IP where TID not in (select max(TID) from query_IP group by SIP,EIP)
就是将SIP和EIP分组,取得同样分组的***的TID值。

然后将原表中不在其中的内容(也就是同样分组的重复内容中更小的ID内容)删除即可。用这种思路可以延伸出很多SQL解题的方式。比如说某个用户登陆表,要查看每个用户最近的登陆记录。

很优雅的一条查询语句:
Select * from LoginLog where ID in (select max(ID) from LoginLog group by UserID)

SQL强大之极,许多复杂的需求往往可以合并到一条SQL语句查询中实现。因此在我的程序中除了UPDATE/INSERT等操作需要事务支持,或是记录量实在太大需要分页或临时表。通常都用一条SQL语句来实现。比如说select *,(select count(*) from xxx where xxx=t.ID) from t where...。这样就可以在SELECT语句中获取关联的统计项,对于中小型系统尤其实用。

【编辑推荐】

启动停止Sql Server服务的实现方法

Sql server DAC连接的问题

SQL Server导出导入某数据库

SQL Server中文乱码问题的解决

SQL Server死锁的解除方法

分享标题:小技巧教您轻松删除SQLServer重复行
标题URL:http://www.shufengxianlan.com/qtweb/news0/51600.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联