话不多说,请看代码:
1
2
3
4
5
6
7
8
9
10
11
|
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:
1
|
delete a from #T a left join ( select min (ID)ID, Name from #T group by Name ) b on a. Name =b. Name and a.ID=b.ID where b.Id is null
|
方法3:
delete a from #T a where ID not in (select min(ID) from #T where Name=a.Name)
方法4(注:ID为唯一时可用):
delete a from #T a where ID not in(select min(ID)from #T group by Name)
方法5:
delete a from #T a where (select count(1) from #T where Name=a.Name and ID<a.ID)>0
方法6:
delete a from #T a where ID<>(select top 1 ID from #T where Name=a.name order by ID)
方法7:
1
2
|
delete a from #T a where ID> any ( select ID from #T where Name =a. Name )
select * from #T
|
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持服务器之家!
原文链接:http://www.cnblogs.com/zhangwc/p/6404306.html