Heim > Datenbank > MySQL-Tutorial > Wie implementiert man Abfrage-Paging in SQL Server mithilfe von OFFSET und FETCH NEXT sowie Alternativen für ältere Versionen?

Wie implementiert man Abfrage-Paging in SQL Server mithilfe von OFFSET und FETCH NEXT sowie Alternativen für ältere Versionen?

DDD
Freigeben: 2025-01-10 20:57:41
Original
445 Leute haben es durchsucht

How to Implement Query Paging in SQL Server Using OFFSET and FETCH NEXT, and Alternatives for Older Versions?

Verwenden Sie SQLs OFFSET und FETCH NEXT, um Paging-Abfragen zu implementieren (SQL Server 2012 und höher)

Dieses Beispiel zeigt, wie man einer Abfrage eine Paginierung hinzufügt, um die zuletzt diskutierten Forumbeiträge abzurufen. Das Ziel besteht darin, die Ergebnisse auf einen bestimmten Zeilenbereich zu beschränken (z. B. „Elemente 10 bis 20“).

SQL Server 2012 hat die Schlüsselwörter OFFSET und FETCH NEXT eingeführt, um die Implementierung von Paging zu vereinfachen:

<code class="language-sql">SELECT col1, col2, ...
FROM ...
WHERE ...
ORDER BY -- 必须包含 ORDER BY 语句
-- 分页语句
OFFSET 10 ROWS -- 跳过 10 行
FETCH NEXT 10 ROWS ONLY; -- 获取 10 行</code>
Nach dem Login kopieren

Ursprüngliche Abfrage ändern:

<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>
Nach dem Login kopieren

Paginierung in SQL Server 2008 und früher

In Versionen vor SQL Server 2012 können Sie die Funktionen ROW_NUMBER() und COUNT() in Kombination mit Unterabfragen verwenden, um Paging zu implementieren. Ein Beispiel ist wie folgt:

<code class="language-sql">DECLARE @Start INT
DECLARE @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;</code>
Nach dem Login kopieren

Durch Anpassen der @Start- und @End-Variablen können Sie den gewünschten Seitenbereich festlegen.

Das obige ist der detaillierte Inhalt vonWie implementiert man Abfrage-Paging in SQL Server mithilfe von OFFSET und FETCH NEXT sowie Alternativen für ältere Versionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage