日期:2014-05-20  浏览次数:20392 次

每个type都查找前面10条记录的sql语句
表当中有个列是来区分模块的
比如表A
  A.Name   A.TypeID
    老王           1
      老李         2
      老陈         4
A.TypeID是随时都可以增加,随时都可以减少的
我现在要每个TypeID都查找前面10条数据出来   ,sql语句要如何写?

------解决方案--------------------
declare @sql varchar(8000)
set @sql = ' '
select @sql = @sql + ' union all select top 10 * from a where TypeID= ' + cast(TypeID as varchar) from A

set @sql = stuff(@sql,1,11, ' ')
exec(@sql)
------解决方案--------------------
一楼的有点小问题,应该是:
declare @sql varchar(8000)
set @sql = ' '
select @sql = @sql + ' union select top 2 * from TableName where TypeID= ' + cast(TypeID as varchar) from TableName

set @sql = stuff(@sql,1,7, ' ')
Print @sql
exec(@sql)
------解决方案--------------------
你试过也忘记加group by 了
人家要的是 "每个TypeID都查找前面10条数据出来 "

别在这掐了,干活了