我正在尝试在我的网站上实现从数据库表返回结果的页面的分页。
目前,它以随机顺序返回所有行。但是,随着我的数据库不断增长,我想对这些结果进行分页,而不是在一页上显示它们。但是,我不想仅仅为了显示 20 条记录而返回所有结果。根据页面的不同,我只想从数据库中获取 20 条相关记录。
我正在学习本教程:教程
但是,我不能使用带有OFFSET
子句的查询,因为托管使用 SQL SERVER 2008。(我相信它是在 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