SQL Practice Blog – SQL Server, BizTalk und .NET Erfahrungen

Paging mit OFFSET und FETCH im SQL Server 2012

leave a comment »

Lange hat es gedauert, doch nun beherrscht der SQL Server mit Version 2012 endlich das Paging. Unter Paging versteht man die Festlegung davon wie viele Datensätze pro Seite ausgeben werden sollen. Dies wird besonders bei diversen Webapplikationen benötigt um die Anzahl der geladenen Daten zu verringern. Würde die Suche auf einer Website ein Trefferergebnis von 400 Datensätzen betragen, möchte der Nutzer sicherlich nicht alle 400 Datensätze mit einmal auf der Website sehen, sondern z.B. immer nur 20 Stück. Diese 20 Datensätze werden jetzt auf 20 Seiten aufgelistet. Damit der Traffic möglichst gering bleibt, werden auch immer nur die Datensätze der aktuellen Seite geladen. Das nennt man Paging.

Möglichkeiten mit dem SQL Server 2012

Mit dem SQL Server 2012 kommen unter anderen zwei neue Befehle welche in der ORDER BY Klausel genutzt werden können:

  • OFFSET
    Legt fest wie viele Datensätze übersprungen werden, bevor Datensätze zurückgegeben werden.
  • FETCH
    Gibt an wie viele Datensätze nach der OFFSET Klausel angezeigt werden sollen

Beispiel

In dem Beispiel werden Kundendaten selektiert, welche mit dem Nachnamen Meyer beginnen. Allerdings werden die ersten 40 Zeilen übersprungen und von da an 20 Zeilen selektiert.

image

Varianten von OFFSET und FETCH

Anstelle von NEXT kann man auch FIRST genutzt werden, es handelt sich hierbei nur um ein Synonym. Das gleich gilt für das Wort ROWS, hier kann auch ROW genutzt werden. Anstelle der direkten Anzahl der Datensätze bei OFFSET oder FETCH kann hier auch eine Variable zum Einsatz kommen. Dies könnte zum Beispiel so aussehen und wäre im zusammenhangen mit dynamisches Stored Procedures recht interessant.

image

Expressions in OFFSET und FETCH

Es ist ebenfalls möglich Expressions im Zusammenhang von OFFSET und FETCH zu nutzen. Hier ein Beispiel:

image

Zur Verfügung stehen die Erweiterungen OFFSET und FETCH bereits ab dem SQL Server 2012 Express.

Written by Robert Meyer

Juli 19, 2012 um 07:25

Veröffentlicht in SQL Server

Tagged with , , , , ,

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: