2016-03-28 10 views
0

PostgreSql RDBMS'de Seek yöntemi adlı SQL stratejisini kullanarak sayfalama uygularım.SQL'de Seek yöntemini kullanarak ve bitişik olmayan sayfalara atlama

Internet üzerinden gördüğüm tüm örnekler bir sonraki sayfanın nasıl alınacağını açıklıyor (örneğin bkz. this article. Ancak, bir sayfadan diğerine bitişik olmayan bir sayfaya geçmek için yöntemin nasıl uygulanacağını merak ediyorum (örn. herhangi bir ofset kullanmadan sayfa 5) sayfa 1

herhangi örnek

+0

mysql, 'postgresql', sql-server',' oracle' veya 'db2' - veya bir şey tamamen başka. –

+0

Yapamazsın. Arama yöntemi, bitişik sayfanın son anahtarını bilmeye dayanır, böylece bu noktadan sonraki bir sonraki kayıt sayfasını arayabilir, Eğer rastgele gezinmeye izin vermeniz gerekiyorsa, başka bir yöntem kullanmanız gerekecektir. Yine de bir melez yapabilirsin, örneğin. Sayfa 10'dan 15'e atlamak sadece bağlantı noktasından 5 sayfayı saymalıdır. –

+0

@marc_s postgresql kullanıyorum –

cevap

0

T-SQL:.? Bunun için size `kullandığınız belirtmek için bir etiket ekleyin RDBMS

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

Bu yöntemin nasıl çalıştığından emin değilim, lütfen detaylandırır mısınız? – madhur

İlgili konular