データベーステーブルから結果を返すWebサイトのページにページ付けを実装しようとしています。
現在、すべての行をランダムな順序で返します。ただし、データベースが大きくなるにつれて、これらの結果をすべて1ページに表示するのではなく、ページ分割したいと思います。ただし、たとえば20レコードを表示するためだけに、すべての結果を返したくはありません。ページによっては、データベースから関連する20レコードだけを取得したいと思います。
私はこのチュートリアルに従っています:チュートリアル
ただし、ホスティングでSQL SERVER 2008が使用されているため、この句でクエリを使用することはできませんOFFSET
(2012年に導入されたと思います)。
この質問の答えに従ってみましたが、結果をランダムな順序で表示したいORDER BY
ので、派生テーブルでは実行できません...そのため、アイデアに少しこだわっています。
何か助けはありますか?ありがとう!
これは私が現在持っているものです:
SELECT Title, Filename, PhotoURL, Orientation, FolderName, SetURL, RowNum
FROM (
SELECT p.Title, p.Filename, p.URL AS PhotoURL, p.Orientation, s.FolderName, s.URL AS SetURL, ROW_NUMBER() OVER (ORDER BY p.PhotoID) AS RowNum
FROM Photos p
LEFT OUTER JOIN SetPhotos sp
ON sp.PhotoID = p.PhotoID
LEFT OUTER JOIN [Sets] s
ON s.SetID = sp.SetID
WHERE p.Hide = 0
ORDER BY NEWID()
) AS PaginatedPhotos
WHERE PaginatedPhotos.RowNum BETWEEN 0 AND 10