declare @tbl table(name varchar(20),age datetime)insert into @tbl select 'jacky','1985-12-23' union select 'myjacky','1986-12-10' unionselect 'myjacky','1986-12-12' unionselect 'jacky','1988-09-23'--方法一select a.* from @tbl a inner join (select max(age) as age,name from @tbl group by name) bon a.name=b.name and a.age=b.age--方法二select a.* from @tbl a where 1>(select count(*) from @tbl where name = a.name and age > a.age) order by a.name--方法三select a.* from @tbl a where not exists(select 1 from @tbl where name = a.name and age < a.age)--方法四select a.* from @tbl a where age = (select min(age) from @tbl where name = a.name) order by a.name