国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > SQL Server > 正文

SQL Server2008中刪除重復記錄的方法分享

2024-08-31 01:00:53
字體:
來源:轉載
供稿:網友
現在讓我們來看在SQL SERVER 2008中如何刪除這些記錄, 首先,可以模擬造一些簡單重復記錄:

復制代碼 代碼如下:


Create Table dbo.Employee (
[Id] int Primary KEY ,
[Name] varchar(50),
[Age] int,
[Sex] bit default 1
)
Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(1,'James',25,default)
Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(2,'James',25,default)
Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(3,'James',25,default)
Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(4,'Lisa',24,0)
Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(5,'Lisa',24,0)
Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(6,'Lisa',24,0)
Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(7,'Mirsa',23,0)
Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(8,'Mirsa',23,0)
Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(9,'Mirsa',23,0)
Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(10,'John',26,default)
Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(11,'Abraham',28,default)
Insert Into Employee ([Id] , [Name] , [Age] , [Sex] ) Values(12,'Lincoln',30,default)


OK,首先我們使用最常見的方法:

Delete From Employee Where Name in (select NameFrom Employee Group By Name Having Count(Name)>1);
接著使用RowNumber():

Delete T From( Select Row_Number() Over(Partition By [Name] Order By (SELECT 0)) As RowNumber,* From Employee) TWhere T.RowNumber > 1;

還可以使用CTE (Common Table Expressions):

復制代碼 代碼如下:


With Dups as
(
select ROW_NUMBER() Over(Partition by [Name] Order by (SELECT 0)) as rn
FROM Employee
)
Delete From Dups
Where rn>1;


再加上RANK()的CTE:

復制代碼 代碼如下:


WITH Dups As
(
Select [ID],[Name],[Age],[Sex]
, ROW_NUMBER() OVER(Partition By [Name] Order By (SELECT 0)) AS rn
,RANK() OVER(Partition By [Name] Order By (SELECT 0)) AS rnk
FROM Employee
)
DELETE FROM Dups
WHERE rn<>rnk;


下面是這四個T-SQL查詢的執行計劃:

SQL Server2008中刪除重復記錄的方法分享


希望這篇POST對您開發有幫助.作者:Petter Liu

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汤原县| 永福县| 襄垣县| 麻栗坡县| 屏边| 隆回县| 宿州市| 景宁| 德州市| 华阴市| 桐柏县| 兖州市| 马尔康县| 连南| 沾化县| 鹤壁市| 高平市| 潢川县| 娱乐| 邵阳县| 崇礼县| 石阡县| 余江县| 新和县| 阿尔山市| 诸城市| 长寿区| 毕节市| 常宁市| 沅江市| 辽源市| 利津县| 合肥市| 巩义市| 姜堰市| 和田市| 泸定县| 台山市| 旅游| 张北县| 彰化市|