我现在有张表  里面有三个字段  ID  NAME   Age现在只想去掉NAME内有重复的,其它两个都显示出来select distinct Name,ID,age from 表    ??   //这样好像不行啊

解决方案 »

  1.   


    select id,name,age from(
    select px=row_number()over(partition by NAME order by(select 1)),* from tbl
    )a
    where px=1
      

  2.   

    SELECT * FROM [Users]
    WHERE [Id] IN(SELECT MAX([Id]) FROM [Users] GROUP BY [Name])
      

  3.   

    SELECT * FROM [Users]
    WHERE [Id] IN(SELECT MAX([Id]) FROM [Users] GROUP BY [Name])
    SELECT * FROM [Users]
    WHERE [Id] IN(SELECT Min([Id]) FROM [Users] GROUP BY [Name])----以上所有版本通用
    select id,name,age from(
    select px=row_number()over(partition by NAME order by(select 1)),* from tbl
    )a
    where px=1
    ---row_number() 只有 2005 版本以上支持
      

  4.   

    如果id不唯一,则in不行,要left join
      

  5.   


    如果Id不唯一,用left join如何查?能请教下吗?
      

  6.   

    http://topic.csdn.net/u/20080626/00/43d0d10c-28f1-418d-a05b-663880da278a.html有FAQ帖子可以参考