Was ist Paginierung?

Paginierung ist der Prozess der Aufteilung großer Datenmengen in kleinere Datensätze auf diskreten Seiten. Es wird häufig in Webanwendungen verwendet.

Wie funktioniert die Paginierung in MS SQL Server?

Im MS SQL Serverkönnen wir die Paginierungsfunktionalität erreichen, indem wir verwenden OFFSET und FETCH Klauseln mit ORDER BY in SELECT Aussage.

  • OFFSET: Stellt die Anzahl der Zeilen dar, die aus der Ergebnismenge übersprungen werden sollen. Es sollte 0 oder größer als 0 sein.
  • FETCH: Stellt die Anzahl der Zeilen dar, die im Ergebnis angezeigt werden sollen.

Wichtige Punkte, die bei der Verwendung zu beachten sind OFFSET und FETCH:

  • ORDER BY ist für die Verwendung obligatorisch OFFSET FETCH Klausel.
  • OFFSET ist Pflicht u FETCH es ist optional.
  • TOP Klausel kann nicht in verwendet werden SELECT Aussage mit OFFSET FETCH.

Sehen wir uns Beispiele an:

Im folgenden Beispiel OFFSET 0 und FETCH NEXT 5 ROWS Überspringen Sie keine Zeilen und geben Sie die nächsten 5 Zeilen im Dataset zurück, die ersten 5 Zeilen im Dataset.

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 und NÄCHSTE 5 ZEILEN ABRUFEN

Im folgenden Beispiel OFFSET 3 und FETCH NEXT 5 ROWS bedeutet, die ersten 3 Zeilen zu überspringen und die nächsten 5 Zeilen im Dataset zurückzugeben.

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 und NÄCHSTE 5 REIHEN ABRUFENPageNumberRowsOfPage

  • PageNumber — Stellt die Seitenzahl dar
  • RowsOfPage — Repräsentiert die Anzahl der Zeilen auf einer Seite

Um nun die Anzahl der zu überspringenden Zeilen zu berechnen, wenn wir zur nächsten Seite formul gehen(@PageNumber-1) * @RowsOfPage verwendet wird OFFSETund die Anzahl der Zeilen wird zurückgegeben FETCH.

Hier, PageNumber ist 2 und RowsOfPage ist 5, was bedeutet, dass der Datensatz für Seite 2 zurückgegeben wird.

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

Fazit

In der Echtzeitanwendung kann diese vollständige Logik in die gespeicherte Prozedur geschrieben werden, die aufgerufen wird, wenn in der Webanwendung auf die Schaltfläche „Weiter“ oder die Seitenzahl geklickt wird, um den Satz von Datensätzen auf der Seite anzuzeigen.

Alle Anleitungen zur Paginierung in MS SQL Server mit OFFSET und FETCH [Simple] Die Methoden, die ich erwähnt habe, haben gut funktioniert. Vielen Dank fürs Lesen und bitte kommentieren Sie unten mit Ihren Gedanken zu diesem Artikel und teilen Sie ihn signalfix.net mit deinen Freunden.