sql server 2008分页不成功

netharry 2019-05-22 11:22:07
select top #{limit} * from (select row_number() over(order by Date asc) as rownumber,* from Progress) p where rownumber>((#{page}-1)* #{limit})

select top #{limit} * from Progress where ProgressID not in(select top ((#{page}-1)*#{limit}) ProgressID from Progress)
明明是最后一页了,还查询出50条记录。

用这两个都不行,主键ID是GUID,难道分页不支持GUID? 多谢!
...全文
241 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiangqing 2019-05-23
  • 打赏
  • 举报
回复
用row_number() 来实现
zjcxc 2019-05-23
  • 打赏
  • 举报
回复
语句看起来没问题,是不是参数没替换对?直接把值放进去在 ssms 中测试一下
吉普赛的歌 2019-05-23
  • 打赏
  • 举报
回复
DECLARE @pageIndex INT,@pageSize INT
SET @pageIndex=6
SET @pageSize=5

SELECT rid,number,TYPE,t.[status] FROM (
	SELECT ROW_NUMBER() OVER (ORDER BY number) AS rid ,* 
	FROM [master].dbo.spt_values AS sv
	WHERE sv.[type]='P' AND sv.number>0
) AS t
WHERE t.rid>@pageIndex*@pageSize AND t.rid<=(@pageIndex+1)*@pageSize
/*
rid                  number      TYPE status
-------------------- ----------- ---- -----------
31                   31          P    0
32                   32          P    0
33                   33          P    0
34                   34          P    0
35                   35          P    0
*/
你参照这个来做你的分页吧
netharry 2019-05-22
  • 打赏
  • 举报
回复
应该是 select top #{limit} * from (select row_number() over(order by ProgressID asc) as rownumber,* from Progress) p where rownumber>((#{page}-1)* #{limit})
netharry 2019-05-22
  • 打赏
  • 举报
回复
引用 2 楼 卖水果的net 的回复:
#{limit}, #{page} 这两个,都是什么含义?
#{limit}是条数, #{page} 是第几页,实际运行是这样: select top 50 * from (select row_number() over(order by ProgressID asc) as rownumber,* from Progress) p where rownumber>((7-1)* 50)
卖水果的net 2019-05-22
  • 打赏
  • 举报
回复
#{limit}, #{page} 这两个,都是什么含义?

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧