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
x
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.