2017-10-13 85 views
-2

讓我們考慮消息聊天 案例 用戶想獲得最後100味精 當他再次向上滾動,他必須獲得100更像是我們得到的數據如何在SQL Server中編寫查詢SQL數據動態排序

說明 讓我們考慮4人在那裏一組,然後再返回他即要得到最後51-100 然後再滾動裝置 1001-151

聊天 每一個過去的50個記錄至少 他可以去
+1

請編輯該問題,將其限制爲具有足夠細節的特定問題以確定適當的答案。請參閱[如何提問](https://stackoverflow.com/help/how-to-ask)頁面以獲得澄清此問題的幫助。 – caramba

+0

你的數據結構是什麼?舉個例子?你現在得到什麼,你的SQL嘗試? – wumpz

回答

0

你可以讓sql que RY這樣

SELECT TOP 100 * FROM [TABLE_NAME],其中[YOUR_CONDITION]

這會給你從你的桌面100行。

1

您正在尋找簡單的分頁查詢:

DECLARE @PageSize INT 
     ,@PageNumber INT 

SET @PageSize = 50 
SET @PageNumber = 1 

SELECT * 
FROM dbo.MessagesTable 
ORDER BY MessageDateAdded DESC 
OFFSET @PageSize * (@PageNumber - 1) ROWS 
FETCH NEXT @PageSize ROWS ONLY; 

你只是查詢50最新消息:

SET @PageSize = 50 

ORDER BY MessageDateAdded DESC 

你可以做一個SQL例程接受作爲參數@PageNumber。您還需要在應用程序中獲取當前用戶​​。因此,當用戶需要加載上一頁時,您只需傳遞給函數current page number + 1

此外,使用OFFSET-FETCH你需要的SQL Server 2012+。否則,你需要自己實現分頁。讓我知道如果你不怎麼樣。