国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 萨嘎县| 寻乌县| 丰镇市| 彭州市| 大厂| 汉沽区| 乡宁县| 郑州市| 历史| 宁南县| 平南县| 三明市| 泉州市| 宣汉县| 迁西县| 如东县| 马边| 贵溪市| 西林县| 巴南区| 万荣县| 长汀县| 郁南县| 合阳县| 宜昌市| 南溪县| 普兰县| 赤水市| 曲麻莱县| 六安市| 光泽县| 建昌县| 滦南县| 惠东县| 阜南县| 陈巴尔虎旗| 酉阳| 宜昌市| 巧家县| 长春市| 上高县|