通过本文主要向大家介绍了sql server 删除重复,sql server 删除语句,sql server 删除表,sql server 删除数据,sql server 删除列等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
注:此处“重复”非完全重复,意为某字段数据重复
HZT表结构
ID int
Title nvarchar(50)
AddDate datetime
数据
一. 查找重复记录
1. 查找全部重复记录
Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
2. 过滤重复记录(只显示一条)
Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)
注:此处显示ID最大一条记录
二. 删除重复记录
1. 删除全部重复记录(慎用)
Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
2. 保留一条(这个应该是大多数人所需要的)
Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)
注:此处保留ID最大一条记录
其它相关:
HZT表结构
ID int
Title nvarchar(50)
AddDate datetime
数据
一. 查找重复记录
1. 查找全部重复记录
Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
2. 过滤重复记录(只显示一条)
Select * From HZT Where ID In (Select Max(ID) From HZT Group By Title)
注:此处显示ID最大一条记录
二. 删除重复记录
1. 删除全部重复记录(慎用)
Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
2. 保留一条(这个应该是大多数人所需要的)
Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)
注:此处保留ID最大一条记录
其它相关:
删除重复记录有大小关系时,保留大或小其中一个记录
--> --> (Roy)生成測試數據
if not object_id('Tempdb..#T') is null
drop table #T
Go
Create table #T([ID] int,[Name] nvarchar(1),[Memo] nvarchar(2))
Insert #T
select 1,N'A',N'A1' union all
select 2,N'A',N'A2' union all
select 3,N'A',N'A3' union all
select 4,N'B',N'B1' union all
select 5,N'B',N'B2'
Go
--I、Name相同ID最小的记录(推荐用1,2,3),保留最小一条
方法1:
delete a from #T a where exists(select 1 from #T where Name=a.Name and ID<a.ID)
方法2:
delete a from #T a left join (select min(ID)ID,Name from #T group by Name) b on a.Name=