一个摇滚乐队目前有 100 首歌曲:
select count(songName) from bands where name='Beatles'
结果:100。
我通过分页在我的应用程序中显示这些歌曲(每次 - 10 个结果)
如何获取相关页面及其行?
像这样:(SP)
declare @pageItems int=10
declare @pagenum int=1
select * from (
SELECT [id] , row_number() over ( order by songName) as n
FROM Bands where name='Beatles'
) a
where a.n > (@pagenum-1)*@pageItems and a.n<= (@pagenum)*@pageItems
但是有一个问题。
假设用户在page 3
。
披头士乐队发布了一首名为“aaa”的新歌
所以现在,会出现不匹配,因为在顶部插入了一个新行(并将所有行推到下面)。
我不想将所有行都放入我的应用程序中。
获得第一个标准结果的正确方法/(功能?)是什么?
我可以使用临时表,但它仅适用于当前连接。(并且每次用户在分页时按“下一步” - 这是一个新会话)。