I want to create a stored procedure to fetch data by PageIndex
and PageSize
using OFFSET ROWS
Advertisement
Answer
You can use OFFSET
and FETCH NEXT
for tech number of rows from index. Demo is here
CREATE PROCEDURE [dbo].[P_StudentSelectPaging] @PageIndex INT=1, @PageSize INT=10 AS BEGIN SET NOCOUNT ON; SELECT ROW_NUMBER() OVER(ORDER BY Id DESC) AS RowNumber,[RecordCount]=COUNT(*) OVER(), Id,Name,City FROM ( SELECT ISNULL(Id,0) AS Id, ISNULL(Name,0) AS Name, ISNULL(City,'') AS City FROM F_Posts P ) AS tmpTable ORDER BY ISNULL(Id,1) DESC OFFSET @PageSize * (@PageIndex-1) ROWS FETCH NEXT @PageSize ROWS ONLY; END
Note: OFFSET
is only supported in the higher versions than SQL Server R2 2008.