Co je stránkování?

Stránkování je proces rozdělování velkých dat do menších souborů dat na samostatných stránkách. Je široce používán ve webových aplikacích.

Jak funguje stránkování na MS SQL Server?

v MS SQL Servermůžeme dosáhnout funkčnosti stránkování pomocí OFFSET a FETCH doložky s ORDER BY v SELECT prohlášení.

  • OFFSET: Představuje počet řádků, které mají být vynechány ze sady výsledků. Mělo by být 0 nebo větší než 0.
  • FETCH:Představuje počet řádků, které se mají zobrazit ve výsledku.

Důležité body při používání OFFSET a FETCH:

  • ORDER BY je pro použití povinné OFFSET FETCH Doložka.
  • OFFSET je povinné a FETCH je volitelná.
  • TOP doložka nelze použít v SELECT prohlášení s OFFSET FETCH.

Podívejme se na příklady:

V níže uvedeném příkladu OFFSET 0 a FETCH NEXT 5 ROWS vynechat žádné řádky a vrátit dalších 5 řádků v datové sadě, což je prvních 5 řádků v datové sadě.

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey 
OFFSET 0 ROWS
FETCH NEXT 5 ROWS ONLY

OFFSET 0 a NAČÍST DALŠÍCH 5 ŘÁDKŮ

V níže uvedeném příkladu OFFSET 3 a FETCH NEXT 5 ROWS střední přeskočit první 3 řádky a vrátit dalších 5 řádků v datové sadě.

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey 
OFFSET 3 ROWS
FETCH NEXT 5 ROWS ONLY

OFFSET 3 a NAČÍST DALŠÍCH 5 ŘÁDKŮPageNumberRowsOfPage

  • PageNumber — Představuje číslo stránky
  • RowsOfPage — Představuje počet řádků na stránce

Nyní, abychom vypočítali počet řádků, které mají být přeskočeny, když se přesuneme na vzorec další stránky(@PageNumber-1) * @RowsOfPage se používá v OFFSETa bude vrácen počet řádků FETCH.

Tady, PageNumber je 2 a RowsOfPage je 5, což znamená vrátit datovou sadu pro stránku číslo 2.

DECLARE @PageNumber AS INT
       ,@RowsOfPage AS INT

SET @PageNumber=2
SET @RowsOfPage=5

SELECT EmployeeKey,FirstName,LastName,Title,EmailAddress,
Phone,EmergencyContactName,DepartmentName
FROM dbo.DimEmployee WITH(NOLOCK)
ORDER BY EmployeeKey
OFFSET (@PageNumber-1) * @RowsOfPage ROWS
FETCH NEXT @RowsOfPage ROWS ONLY

OFFSET (@PageNumber-1) * @ RowsofPage a FETCH NEXT @RowsOfPage ROWS

Závěr

V aplikaci v reálném čase lze tuto úplnou logiku zapsat do uložené procedury, která se vyvolá kliknutím na tlačítko „Další“ nebo tlačítko s číslem stránky ve webové aplikaci, aby se zobrazila sada záznamů na stránce.

Vše o tom, jak stránkovat v MS SQL Server pomocí OFFSET a FETCH [Simple] metody, které jsem zmínil, fungovaly dobře. Děkuji za přečtení a prosím, komentujte níže své myšlenky na tento článek a sdílejte signalfix.net s tvými přáteli.