SQL SERVER 刪除重復(fù)內(nèi)容行
其實(shí)這個(gè)問(wèn)題可以很華麗的解決。
1、如果這張表沒(méi)有主鍵(或者相同的行并沒(méi)有不相同的內(nèi)容列),則需要新建一個(gè)自增列,用來(lái)區(qū)分不同列。例如
alter table [tablename] add [TID] int IDENTITY(1,1)
就是增加一個(gè)自增量的臨時(shí)列TID。
為啥要用SQL語(yǔ)句?如果超過(guò)幾十萬(wàn)行的話用SQL SERVER企業(yè)管理器的設(shè)計(jì)界面修改通常會(huì)超時(shí)。
2、然后就是關(guān)鍵了。給個(gè)例子就是我手上正要處理的IP地址所在地清單。近40萬(wàn)條數(shù)據(jù),有SIP和EIP(開(kāi)始IP和結(jié)束IP)記錄重復(fù),重復(fù)條數(shù)大概占1/5左右。對(duì)此情況用簡(jiǎn)單的一條SQL命令就搞定:
delete from query_IP where TID not in (select max(TID) from query_IP group by SIP,EIP)
就是將SIP和EIP分組,取得同樣分組的最大的TID值。然后將原表中不在其中的內(nèi)容(也就是同樣分組的重復(fù)內(nèi)容中更小的ID內(nèi)容)刪除即可。
用這種思路可以延伸出很多SQL解題的方式。比如說(shuō)某個(gè)用戶登陸表,要查看每個(gè)用戶最近的登陸記錄。
很優(yōu)雅的一條查詢語(yǔ)句:
Select * from LoginLog where ID in (select max(ID) from LoginLog group by UserID)
SQL強(qiáng)大之極,許多復(fù)雜的需求往往可以合并到一條SQL語(yǔ)句查詢中實(shí)現(xiàn)。因此在我的程序中除了UPDATE/INSERT等操作需要事務(wù)支持,或是記錄量實(shí)在太大需要分頁(yè)或臨時(shí)表。通常都用一條SQL語(yǔ)句來(lái)實(shí)現(xiàn)。比如說(shuō)select *,(select count(*) from xxx where xxx=t.ID) from t where...。這樣就可以在SELECT語(yǔ)句中獲取關(guān)聯(lián)的統(tǒng)計(jì)項(xiàng),對(duì)于中小型系統(tǒng)尤其實(shí)用。
- SQL Server數(shù)據(jù)庫(kù)刪除數(shù)據(jù)集中重復(fù)數(shù)據(jù)實(shí)例講解
- Sql Server里刪除數(shù)據(jù)表中重復(fù)記錄的例子
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個(gè)方法
- SqlServer2005中使用row_number()在一個(gè)查詢中刪除重復(fù)記錄的方法
- SQL Server2008中刪除重復(fù)記錄的方法分享
- 分享SQL Server刪除重復(fù)行的6個(gè)方法
- sqlserver 刪除重復(fù)記錄處理(轉(zhuǎn))
- SqlServer 2005中使用row_number()在一個(gè)查詢中刪除重復(fù)記錄
- 教你幾種在SQLServer中刪除重復(fù)數(shù)據(jù)方法
- SQL Server刪除表中的重復(fù)數(shù)據(jù)
相關(guān)文章
安裝完成后如何找回SQL Server實(shí)例安裝時(shí)的序列號(hào)
當(dāng)我們需要再次安裝sqlserver時(shí),如何找回sqlserver實(shí)例安裝時(shí)的序列號(hào)呢?下面,跟著腳本之家小編一起學(xué)習(xí)安裝完成后如何找回SQL Server實(shí)例安裝時(shí)的序列號(hào),需要的朋友可以參考下2015-09-09深入SQL SERVER合并相關(guān)操作Union,Except,Intersect的詳解
本篇文章是對(duì)SQL SERVER合并相關(guān)操作Union,Except,Intersect進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06mssql 30萬(wàn)條數(shù)據(jù) 搜索文本字段的各種方式對(duì)比
30萬(wàn)條,有ID列但無(wú)主鍵,在要搜索的“分類”字段上建有非聚集索引2010-04-04淺析SQL Server 聚焦索引對(duì)非聚集索引的影響
本篇文章對(duì)SQL Server的聚焦索引和非聚集索引進(jìn)行簡(jiǎn)單分析,從而總結(jié)出聚焦索引對(duì)非聚集索引的影響。有興趣的朋友可以看下2016-12-12ROW_NUMBER SQL Server 2005的LIMIT功能實(shí)現(xiàn)(ROW_NUMBER()排序函數(shù))
SQL Server 2005新增了一個(gè)ROW_NUMBER()函數(shù),通過(guò)它可實(shí)現(xiàn)類似MySQL下的LIMIT功能。下面的語(yǔ)法說(shuō)明摘自SQL Server 2005的幫助文件2012-06-06SQL SERVER 將XML變量轉(zhuǎn)為JSON文本
這篇文章主要介紹了SQL SERVER 將XML變量轉(zhuǎn)為JSON文本的相關(guān)資料,需要的朋友可以參考下2016-03-03SQL語(yǔ)句的各個(gè)關(guān)鍵字的解析過(guò)程詳細(xì)總結(jié)
由于最近需要做一些sql query性能提升的研究,因此研究了一下sql語(yǔ)句的解析過(guò)程;本文是我在看了各種資料后手機(jī)總結(jié)的,會(huì)詳細(xì)的,一步一步的講述一個(gè)sql語(yǔ)句的各個(gè)關(guān)鍵字的解析過(guò)程,歡迎大家互相學(xué)習(xí)2013-01-01