ロック バンドには現在 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」を発表。
そのため、上部に挿入された新しい行があるため(そしてすべての行を下にプッシュするため)、不一致が発生します。
アプリにすべての行を取得したくありません。
最初の基準結果を取得するための正しい方法 / (機能?) は何ですか?
一時テーブルを使用することもできますが、それは現在の接続専用です。(そして、ユーザーがページングで「次へ」を押すたびに、新しいセッションになります)。