现有表A
name  time 
aaa   2008
ccc   2009
bbb   2010
bbb   2011
ddd   2012
做查询:按time顺序取出name
select name from time order by time
现在的问题是取出来的name有重复的:
aaa 
ccc
bbb
bbb
ddd
怎么去掉重复的呢,通过加distinct走不通 

解决方案 »

  1.   

    SELECT NAME,MAX(TIME) FROM TB GROUP BY NAME
    SELECT NAME,MIN(TIME) FROM TB GROUP BY NAME
      

  2.   

    select name , max(time) from tb group by tname
    select name , min(time) from tb group by tname
      

  3.   

    --保留最遲時間的名字:
    SELECT [name] , MAX([time]) AS [time] FROM TB GROUP BY [time]
    --保留最早時間的名字:
    SELECT [name] , MIN([time]) AS [time] FROM TB GROUP BY [time] 
      

  4.   

    create table #F
    (
    name nvarchar(20),
    [time] int
    )
    insert into #F
    select 'aaa',  2008 union all
    select 'ccc',  2009 union all
    select 'bbb',  2010 union all
    select 'bbb',  2011 union all
    select 'ddd',  2012
    select name,MAX([time]) from #F group by name
    drop table #F