Heim >Datenbank >MySQL-Tutorial >Wie implementiert man benutzerdefinierte Paginierung in SQL Server mit OFFSET/FETCH und ROW_NUMBER()?
Benutzerdefiniertes SQL Server-Paging: Methoden OFFSET/FETCH und ROW_NUMBER()
SQL-Paginierung wird verwendet, um eine begrenzte Anzahl von Datensätzen aus einem Datensatz abzurufen, und wird normalerweise verwendet, um die Ergebnisse auf Seiten auf einer Benutzeroberfläche anzuzeigen. Das Ziel dieses Artikels besteht darin, die Paging-Funktionalität für eine Abfrage zu implementieren, die Beiträge und ihre neuesten Einträge abruft.
SQL Server 2012 und spätere Versionen können die Schlüsselwörter OFFSET
und FETCH NEXT
verwenden, um Paging zu implementieren. Die folgende Abfrage zeigt, wie diese Schlüsselwörter für die Paginierung verwendet werden:
<code class="language-sql">SELECT PostId FROM ( SELECT PostId, MAX(Datemade) AS LastDate FROM dbForumEntry GROUP BY PostId ) AS SubQueryAlias ORDER BY LastDate DESC OFFSET 10 ROWS -- 跳过10行 FETCH NEXT 10 ROWS ONLY; -- 获取接下来的10行</code>
Für Versionen vor SQL Server 2012 ist ein anderer Ansatz erforderlich. Eine Möglichkeit besteht darin, die Funktion ROW_NUMBER()
zu verwenden, um einem Datensatz eine Zeilennummer zuzuweisen, und dann die Klausel WHERE
zu verwenden, um die gewünschten Zeilen zu filtern:
<code class="language-sql">DECLARE @Start INT, @End INT; SELECT @Start = 10, @End = 20; WITH PostCTE AS ( SELECT PostId, MAX(Datemade) AS LastDate, ROW_NUMBER() OVER (ORDER BY PostId) AS RowNumber FROM dbForumEntry GROUP BY PostId ) SELECT PostId, LastDate FROM PostCTE WHERE RowNumber BETWEEN @Start AND @End; -- 获取第10到20行</code>
Dieser Ansatz bietet eine Möglichkeit, Paging für frühere Versionen von SQL Server zu implementieren, sodass Sie die Anzahl der angezeigten Datensätze steuern und die Navigation in großen Datensätzen erleichtern können.
Das obige ist der detaillierte Inhalt vonWie implementiert man benutzerdefinierte Paginierung in SQL Server mit OFFSET/FETCH und ROW_NUMBER()?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!