2016-03-28 1 views
0

Ich implementiere die Seitennummerierung mithilfe der SQL-Strategie namens Seek-Methode in einem PostgreSql-RDBMS.Verwenden der Suchmethode in SQL und Springen zu nicht benachbarten Seiten

Alle Beispiele, die ich über das Internet sehe, erklären, wie man die nächste Seite bekommt (zB siehe this article. Aber ich frage mich, wie man die Methode implementiert, um von einer Seite zu einer anderen zu gelangen, die nicht benachbart ist Seite 1 bis Seite 5) ohne Verwendung eines Offset

Jedes Beispiel

+0

Welche RDBMS ist dies für fügen Sie bitte einen Tag angeben, ob Sie mit '? mysql', 'postgresql',' sql-server', 'oracle' oder' db2' - oder sowas ganz anders. –

+0

Sie können nicht. Die Suchmethode beruht auf dem Wissen des letzten Schlüssels von der benachbarten Seite, so dass er dann die nächste Seite der Datensätze von diesem Punkt aus suchen kann. Wenn Sie eine zufällige Navigation zulassen müssen, müssen Sie eine andere Methode verwenden. Obwohl du vielleicht eine Hybride machen könntest, z. Leaping von Seite 10 bis 15 müsste nur 5 Seiten vom Anker zählen. –

+0

@marc_s Ich benutze postgresql –

Antwort

0

T-SQL:.?

DECLARE @row_per_page INT = 100 
DECLARE @page_number INT = 2 

SELECT * FROM 
(SELECT ROW_NUMBER() OVER (ORDER BY [ID]) AS [RowNumber],* 
    FROM table_name) AS T 
WHERE T.[RowNumber] > (@page_number-1)*@row_per_page AND T.[RowNumber] < @page_number*@row_per_page+1 
+0

Ich bin nicht sicher, wie diese Methode funktioniert, können Sie bitte erarbeiten? – madhur

Verwandte Themen