I have been trying to understand a little bit about how to implement custom paging in SQL, for instance reading articles like this one.
I have the following query, which works perfectly. But I would like to implement paging with this one.
SELECT TOP x PostId FROM ( SELECT PostId, MAX (Datemade) as LastDate
from dbForumEntry
group by PostId ) SubQueryAlias
order by LastDate desc
What is it I want
I have forum posts, with related entries. I want to get the posts with the latest added entries, so I can select the recently debated posts.
Now, I want to be able to get the “top 10 to 20 recently active posts”, instead of “top 10”.
What have I tried
I have tried to implement the ROW functions as the one in the article, but really with no luck.
Any ideas how to implement it?
In SQL Server 2012 it is very very easy
If we want to skip ORDER BY we can use
(I’d rather mark that as a hack – but it’s used, e.g. by NHibernate. To use a wisely picked up column as ORDER BY is preferred way)
to answer the question:
New key words
offsetandfetch next(just following SQL standards) were introduced.But I guess, that you are not using SQL Server 2012, right? In previous version it is a bit (little bit) difficult. Here is comparison and examples for all SQL server versions: here
So, this could work in SQL Server 2008: