Paging in SQL

From Logic Wiki
Revision as of 09:45, 19 September 2017 by AliIybar (Talk | contribs) (Created page with "Category:SQL Category:Database <pre class="brush:sql;"> CREATE PROCEDURE dbo.Pagination_Test_1 -- ORDER BY CustomerID @PageNumber INT = 1, @PageSize INT = 100 A...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


CREATE PROCEDURE dbo.Pagination_Test_1 -- ORDER BY CustomerID
  @PageNumber INT = 1,
  @PageSize   INT = 100
AS
BEGIN
  SET NOCOUNT ON;
 
  SELECT CustomerID, FirstName, LastName,
      EMail, Active, Created, Updated
    FROM dbo.Customers_I
    ORDER BY CustomerID
    OFFSET @PageSize * (@PageNumber - 1) ROWS
    FETCH NEXT @PageSize ROWS ONLY OPTION (RECOMPILE);
END
GO



  DECLARE @PageNumber INT;
  DECLARE @PageSize   INT;

  SET @PageNumber  = 1;
  SET @PageSize    = 50;

  DECLARE @TotalRows INT;
  DECLARE @TotalPage INT;

  SELECT @TotalRows = COUNT(*) FROM tblPerson 
  SET @TotalPage = @TotalRows / @PageSize 

SELECT *, @TotalPage AS TotalPage, @TotalRows AS TotalRows
  FROM tblPerson
  ORDER BY ID
  OFFSET  @PageSize * (@PageNumber - 1) ROWS
  FETCH NEXT @PageSize  ROWS ONLY;




https://sqlperformance.com/2015/01/t-sql-queries/pagination-with-offset-fetch