查询结果id     name
oo1  张三
001  李四
002  王五
003  小赵
002  小明怎么去除重复的结果得到 
001 张三
002 王五
003 小赵

解决方案 »

  1.   

    select id,name=(select top 1 name from tb where id=a.id)
    from tb a group by id
      

  2.   

    select  * from tb t where name=(select max(name) from tb where id=t.id)
      

  3.   

    select id,min(name) as name from  tab_a 
    group by id
      

  4.   


    --相同id里随便选取一个name
    select id,max(name)name
    from tb
    group by id
      

  5.   

    谢谢上面的。如果还有多个列的时候呢,并且要根据其中一个列来排序查询结果id name   time 
    oo1 张三  30
    001 李四  50
    002 王五  25
    003 小赵  200
    002 小明  50怎么去除重复的结果得到  
    001 李四  50
    002 小明  50
    003 小赵  200
      

  6.   

    加多少都可以select id,min(name)name,min(time)time
    from tb
    group by id
      

  7.   

    select id,name,time
     from (select row_number() over(partition by id order by time desc) as no,* from tb) a
    where no=1
      

  8.   


    select * from tb t  where not exists(select 1 from tb where t.id=id and t.time>time )
      

  9.   


    select * from tb t  where not exists(select 1 from tb where t.id=id and t.time>=time )
      

  10.   

    SELECT b.* FROM
    (SELECT DISTINCT id FROM tb) a
    CROSS APPLY
    (SELECT TOP(1) /*with ties*/ * FROM tb WHERE id = a.id /*order by [name]*/) b