SQL SERVER如何删除重复内容行
来源:爱站网时间:2019-07-17编辑:网友分享
我们在SQL SERVER中对于重复行删除的问题总是感动困扰,搜索资料后发现在网上很难找到合适的答案,那么现在我们就跟随爱站小编一起去看看SQL SERVER如何删除重复内容行的内容吧。
我们在SQL SERVER中对于重复行删除的问题总是感动困扰,搜索资料后发现在网上很难找到合适的答案,那么现在我们就跟随爱站小编一起去看看SQL SERVER如何删除重复内容行的内容吧。
其实这个问题可以很华丽的解决。
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解题的方式。比如说某个用户登陆表,要查看每个用户最近的登陆记录。
很优雅的一条查询语句:
以上就是小编通过网络和书籍查询总结关于SQL SERVER如何删除重复内容行的内容,最后把最简单的操作方式分享给大家,希望对大家有所帮助。
上一篇:SQL表连接了解过去的写法