Mi az a lapozás?

A lapozás az a folyamat, amikor a nagy adatokat kisebb adathalmazokra osztják fel különálló oldalakon. Széles körben használják webes alkalmazásokban.

Hogyan működik a lapozás az MS SQL Serverben?

Ban ben MS SQL Serverhasználatával érhetjük el a lapozási funkciót OFFSET és FETCH záradékok ORDER BY in SELECT állítás.

  • OFFSET: Az eredményhalmazból kihagyandó sorok számát jelöli. 0-nak vagy 0-nál nagyobbnak kell lennie.
  • FETCH:Az eredményben megjelenítendő sorok számát jelöli.

Fontos szempontok, amelyeket figyelembe kell venni a használat során OFFSET és FETCH:

  • A RENDELÉS A használathoz kötelező OFFSET FETCH Kikötés.
  • OFFSET kötelező és FETCH opcionális.
  • TOP záradék nem használható benne SELECT tetszés OFFSET FETCH.

Lássunk példákat:

Az alábbi példában OFFSET 0 és FETCH NEXT 5 ROWS ne hagyja ki a sorokat, és adja vissza az adatkészlet következő 5 sorát, amely az adatkészlet első 5 sorát adja vissza.

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

0 OFFSET és A KÖVETKEZŐ 5 SOR KERESÉSE

Az alábbi példában OFFSET 3 és FETCH NEXT 5 ROWS azt jelenti, hogy kihagyja az első 3 sort, és visszaadja a következő 5 sort az adatkészletben.

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

3. ELJÁRÁS és A KÖVETKEZŐ 5 SOR KERESÉSEPageNumberRowsOfPage

  • PageNumber — Az oldalszámot jelöli
  • RowsOfPage — Az oldalon található sorok számát jelöli

Most, hogy kiszámoljuk az átugorandó sorok számát, amikor a következő oldal képletére lépünk(@PageNumber-1) * @RowsOfPage -ben használják OFFSETés a sorok száma kerül visszaadásra FETCH.

Itt, PageNumber a 2 és RowsOfPage 5, ami azt jelenti, hogy visszaadja a 2. oldal adatkészletét.

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 és FETCH NEXT @RowsOfPage ROWS

Következtetés

A valós idejű alkalmazásban ez a teljes logika beírható a tárolt eljárásba, amelyet a webalkalmazásban a „Tovább” vagy az oldalszám gomb megnyomásával hívunk meg, hogy megjelenítse a rekordkészletet az oldalon.

Az összes oldalszámozás az MS SQL Serverben az OFFSET és a FETCH használatával [Simple] Az általam említett módszerek jól működtek. Köszönjük, hogy elolvasta, és kérjük, kommentálja alább a cikkel kapcsolatos gondolatait, és ossza meg signalfix.net a barátaiddal.