从数据库备份中我有没有唯一ID的记录。
某些记录具有唯一ID。 具有重复ID的某些记录包含不同的DateCreated值。 一些具有重复ID的记录包含相同的DateCreated值。
我正在尝试获取MSSql 2005查询,只留下具有最新DateCreated值的唯一ID值。
来自
ID| DateCreated
1 | 1/1/09
2 | 1/2/09
2 | 2/2/09
3 | 1/3/09
3 | 1/3/09
要
ID| DateCreated
1 | 1/1/09
2 | 2/2/09
3 | 1/3/09
帮助
答案 0 :(得分:10)
DELETE FROM myTable AS t1
WHERE EXISTS (
SELECT 1 FROM myTable AS t2
WHERE t1.ID=t2.ID AND t1.DateCreated<t2.DateCreated)
即,删除存在具有相同ID和更晚创建日期的另一行的任何行。
答案 1 :(得分:0)
create table #t ( id int, date datetime )
insert #t
values(1, getdate())
insert #t
values(1, getdate()+1)
insert #t
values(1, getdate()-1)
insert #t
values(2, getdate())
insert #t
values(2, getdate()+1)
delete t
from #t t
left join (select id, min(date) as date from #t group by id) as t1
on t.id = t1.id and t1.date = t.date
where t1.date is null