2017-10-13 82 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+。否则,你需要自己实现分页。让我知道如果你不怎么样。