一个语句搞定,不用临时表
select * from tablename a
where (select count(*) from tablename where testvalue=a.testvalue and uniqueid<=a.uniqueid)<=3

解决方案 »

  1.   

    表名是要作为参数:exec('
    select * from '+@tablename+' a
    where (select count(*) from '+@tablename+' where testvalue=a.testvalue and uniqueid<=a.uniqueid)<=3
    ')
      

  2.   

    加排序:
    exec('
    select * from '+@tablename+' a
    where (select count(*) from '+@tablename+' where testvalue=a.testvalue and uniqueid<=a.uniqueid)<=3
    order by uniqueid
    ')
      

  3.   

    想你学习!
    我的EMAIL地址是[email protected]
    以后多交流!