日期:2014-05-18  浏览次数:20445 次

请问如何删除这样的重复记录
表     g

产品编号         注册号         日期
0001               060503           20080302
0035               030210           20060203
0001               090203           20090603
0001               020210           20030201
0035               065201           20050201
如何使产品编号每个产品只把留任意一行
产品编号         注册号         日期
0001               060503           20080302
0035               030210           20060203

------解决方案--------------------
create table G(产品编号 varchar(10),注册号 varchar(10),日期 varchar(8))
insert into G values( '0001 ', '060503 ', '20080302 ')
insert into G values( '0035 ', '030210 ', '20060203 ')
insert into G values( '0001 ', '090203 ', '20090603 ')
insert into G values( '0001 ', '020210 ', '20030201 ')
insert into G values( '0035 ', '065201 ', '20050201 ')
go
delete from G where 日期 not in (select min(日期) from G group by 产品编号)
select * from G
drop table G

/*
产品编号 注册号 日期
---------- ---------- --------
0001 020210 20030201
0035 065201 20050201

(所影响的行数为 2 行)
*/