2013-12-13 41 views
1

具有用戶搜索屏幕,默認情況下,我得到1000次上方的記錄(使用前端分頁)在前端按照記錄 頁的用戶ID(SQL查詢),並顯示順序 獲取增量記錄。現在假設我有20個尋呼號碼 ,在那裏它已經設置了50個記錄每頁顯示。現在,當用戶 點擊了20次尋呼號碼我想從 數據庫中獲取更多的1000條記錄,但應根據使用SQL查詢

對於例如是遞增的:

在user表中已經得到6000個用戶

1)從用戶表順序Fethced 1000個用戶通過用戶ID第一 時間

2)現在用戶點擊第20個尋呼號碼,再次我需要撥打 數據庫調用以獲取1000位用戶的用戶訂購號碼,但在此取回 1000個用戶應該從5000個用戶完成,並且任何用戶再次提取應該(1)

在此先感謝您的幫助。

回答

1

嘗試使用ROW_NUMBER()功能

WITH T as 
(
SELECT tUsers.*, 
     ROW_NUMBER() OVER (ORDER BY Id) as RowNum 
     FROM tUsers 
) 

SELECT * FROM T 
     WHERE RowNum between 50*20 AND 50*20+50 
     ORDER BY ID; 
+0

而使用'ROW_NUMBER()分頁的很好的例子'可以在這裏找到:http://www.codeproject.com/Articles/12338/Using-ROW_NUMBER-to- paginate-your-data-with-SQL-Se – dotNET

+0

@dotNET這很好,但是在這個鏈接的SP_GETZIPCODES中存在錯誤。您應該在查詢的末尾添加一個'order by'類來獲得正確的結果'... WHERE num> @start ORDER BY num;'。否則,你可能會從下一頁中弄到一堆亂七八糟的記錄。 – valex