SqlServer 2005中使用row_number()在一個查詢中刪除重復(fù)記錄
更新時間:2010年09月12日 20:26:24 作者:
在SqlServer2005中,提供了一個row_number()的函數(shù),我們經(jīng)常用它做DataBase數(shù)據(jù)分頁.
下面我們來看下,如何利用它來刪除一個表中重復(fù)記錄:
If Exists(Select * From tempdb.Information_Schema.Tables Where Table_Name Like '#Temp%')
Drop Table #temp
Create Table #temp ([Id] int, [Name] varchar(50), [Age] int, [Sex] bit default 1)
Go
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(1,'James',25,default)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(1,'James',25,default)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(1,'James',25,default)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(2,'Lisa',24,0)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(2,'Lisa',24,0)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(2,'Lisa',24,0)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(3,'Mirsa',23,0)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(3,'Mirsa',23,0)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(3,'Mirsa',23,0)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(4,'John',26,default)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(5,'Abraham',28,default)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(6,'Lincoln',30,default)
Delete T From
(Select Row_Number() Over(Partition By [ID],[Name],[Age],[Sex] order By [ID]) As RowNumber,* From #Temp)T
Where T.RowNumber > 1
Select * From #temp
注意倒數(shù)第二句腳本,我們在一個查詢實(shí)現(xiàn)這個功能.
你可以自己執(zhí)行T-SQL script 看效果.希望對您開發(fā)有幫助!
復(fù)制代碼 代碼如下:
If Exists(Select * From tempdb.Information_Schema.Tables Where Table_Name Like '#Temp%')
Drop Table #temp
Create Table #temp ([Id] int, [Name] varchar(50), [Age] int, [Sex] bit default 1)
Go
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(1,'James',25,default)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(1,'James',25,default)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(1,'James',25,default)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(2,'Lisa',24,0)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(2,'Lisa',24,0)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(2,'Lisa',24,0)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(3,'Mirsa',23,0)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(3,'Mirsa',23,0)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(3,'Mirsa',23,0)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(4,'John',26,default)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(5,'Abraham',28,default)
Insert Into #temp ([Id] , [Name] , [Age] , [Sex] ) Values(6,'Lincoln',30,default)
Delete T From
(Select Row_Number() Over(Partition By [ID],[Name],[Age],[Sex] order By [ID]) As RowNumber,* From #Temp)T
Where T.RowNumber > 1
Select * From #temp
注意倒數(shù)第二句腳本,我們在一個查詢實(shí)現(xiàn)這個功能.
你可以自己執(zhí)行T-SQL script 看效果.希望對您開發(fā)有幫助!
您可能感興趣的文章:
- SQL Server數(shù)據(jù)庫刪除數(shù)據(jù)集中重復(fù)數(shù)據(jù)實(shí)例講解
- Sql Server里刪除數(shù)據(jù)表中重復(fù)記錄的例子
- SQL Server中刪除重復(fù)數(shù)據(jù)的幾個方法
- SqlServer2005中使用row_number()在一個查詢中刪除重復(fù)記錄的方法
- SQL Server2008中刪除重復(fù)記錄的方法分享
- 分享SQL Server刪除重復(fù)行的6個方法
- sqlserver 刪除重復(fù)記錄處理(轉(zhuǎn))
- 教你幾種在SQLServer中刪除重復(fù)數(shù)據(jù)方法
- SQL SERVER 刪除重復(fù)內(nèi)容行
- SQL Server刪除表中的重復(fù)數(shù)據(jù)
相關(guān)文章
SQL Server 2005 中使用 Try Catch 處理異常
本文主要對比了Sql Server 2000和Sql Server 2005對異常處理的方法,Sql Server 2005 之后的TRY CATCH捕捉異常,更類似C#、JAVA等語言,更容易被程序員理解。2016-05-05
收縮數(shù)據(jù)庫日志文件的方法(僅適用于mssql2005)
將數(shù)據(jù)庫日志文件變?yōu)?M大小代碼講解收縮mssql2005數(shù)據(jù)庫日志文件的方法,感興趣的你可不要錯過了哈,希望本文可以幫助到你2013-02-02
SQL SERVER 2005數(shù)據(jù)庫還原的方法
這篇文章主要介紹了SQL SERVER 2005數(shù)據(jù)庫還原的方法,有需要的朋友可以參考一下2013-11-11
SQL Server 2005“備份集中的數(shù)據(jù)庫備份與現(xiàn)有的數(shù)據(jù)庫不同”解決方法
SQL Server 2005“備份集中的數(shù)據(jù)庫備份與現(xiàn)有的數(shù)據(jù)庫不同”解決方法2009-07-07
SQL2005CLR函數(shù)擴(kuò)展-數(shù)據(jù)導(dǎo)出的實(shí)現(xiàn)詳解
本篇文章是對SQLServer中數(shù)據(jù)導(dǎo)出的實(shí)現(xiàn)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
PowerDesigner中如何導(dǎo)入SQL Server數(shù)據(jù)庫
這篇文章向我們介紹了如何導(dǎo)入SQL Server數(shù)據(jù)庫到PowerDesigner中的詳細(xì)步驟說明,并附帶圖片介紹,需要了解的朋友可以參考下2015-07-07
SQLSERVER2005 中樹形數(shù)據(jù)的遞歸查詢
在園子里看到一個文章,涉及到樹形數(shù)據(jù)的遞歸查詢,覺得有更好的方法,就隨手寫一個,以備用之2011-10-10
sql server 2005因架構(gòu)無法刪除用戶錯誤15138的解決方法
這篇文章主要介紹了Microsoft SQL Server錯誤: 15138刪除對于用戶失敗,數(shù)據(jù)庫主體在該數(shù)據(jù)庫中擁有架構(gòu),無法刪除問題的解決方法 ,需要的朋友可以參考下2014-07-07

