如下:
    从Table中取出按按照UserID无重复的前10条数据,取出的字段还包括Name,Info字段.

解决方案 »

  1.   

    select top 10 distinct UserID,Name,Info from table
      

  2.   

    不行啊,我只要保证UserID不重复,并且UserID不是主键
      

  3.   


    --多多练习,相互提升
    select UserID,Name,Info
    from table
    where UserID in(select distinct 10 UserID from table)select distinct top 10 UserID,Name,Info from table
      

  4.   

    select
      top 10
    *
    from
    (
    select
      *
    from
      tb t
    where
      UserID=(select max(UserID) from tb where Name=t.Name and Info=t.Info)
    )t
      

  5.   

    select distinct top 10 * from 表名
      

  6.   


    select top 10 UserID,Name,Info
    from
    (
        select * 
        from 
            (select idd=row_number()over(partition by UserID order by getdate()),*
            from table)t
        where idd=1
    )tt
      

  7.   

    小F哥,不行啊,取出来的UserID还是有重复的
      

  8.   

    这个可以的。。楼主可以试试
    不过可以简化为:
        select top 10 userid,name,info 
        from 
            (
             select idd=row_number()over(partition by UserID order by getdate()),*
            from table
            )t
        where idd=1
      

  9.   

    sql2000
    select identity(int,1,i) as id,* into #t from tbselect top 10 t1.* from #t t1
    where  id  = (
        select min(t2. id)  from #t t2 
        where t1.userid=t2.userid 

    2005可以用row_number
      

  10.   

    select top 10 * from tb t where Name = (select max(Name) from tb where UserID = t.UserID) order by t.UserID 
    select top 10 * from tb t where Name = (select min(Name) from tb where UserID = t.UserID) order by t.UserID 
    select top 10 * from tb t where not exists (select 1 from tb where UserID = t.UserID and Name > t.Name) order by t.UserID 
    select top 10 * from tb t where not exists (select 1 from tb where UserID = t.UserID and Name < t.Name) order by t.UserID 
    select top 10 * from tb t where Name = (select max(Name) from tb where UserID = t.UserID) order by t.UserID desc
    select top 10 * from tb t where Name = (select min(Name) from tb where UserID = t.UserID) order by t.UserID desc
    select top 10 * from tb t where not exists (select 1 from tb where UserID = t.UserID and Name > t.Name) order by t.UserID desc 
    select top 10 * from tb t where not exists (select 1 from tb where UserID = t.UserID and Name < t.Name) order by t.UserID desc如果上述都不对,则:
    最好给出完整的表结构,测试数据,计算方法和正确结果.发帖注意事项
    http://topic.csdn.net/u/20091130/21/fb718680-98ff-4afb-98d8-cff2f8293ed5.html?24281