主要是对数据制造伪列,row_number() over(order by 列名 DESC)
例如:存储过程如下(这是使用中简化后的存储过程,有待改进)
create procedure getDataByPage --分页得到数据@pageCount :代表每页有多少条数据,@pageIndex:代表第几页
@pageCount int,@pageIndex int
as
declare @sqlStr nvarchar(max)
declare @sql nvarchar(max)
declare @sqlEnd nvarchar(4000)
begin
set @sqlStr='select * from (select subject,stem,answer,addTime,row_number() over(order by uploadTime DESC) as rowIndex from('
set @sql='select subject,stem,answer,addTime from table1'
set @sqlStr=@sqlStr+@sql+') as a ) as b '
set @sqlEnd='where rowIndex between '+rtrim(ltrim(str((@pageIndex-1)*@pageCount+1)))+' and '+rtrim(ltrim(str(@pageIndex*@pageCount)))
set @sqlStr=@sqlStr+@sqlEnd
end
exec(@sqlStr)