|
|
|
date: Tue, 15 Jul 2008 20:32:17 -0400,
group: microsoft.public.sqlserver.fulltext
back
Re: SELECTing a range from the results
We use a technique using a CTE in combination with the ROW_NUMBER
function to do this. Something like this.
@PageSize and @PageIndex are passed into the procedure.
SET @PageLowerBound = @PageSize * @PageIndex + 1;
SET @PageUpperBound = @PageLowerBound + @PageSize - 1;
WITH AllRows AS (
SELECT ROW_NUMBER() OVER (ORDER BY SortedColumn ASC)
ROW_NUMBER,
AnotherColumn,
ThirdColumn
FROM YourTable)
SELECT *
FROM AllRows
WHERE ROW_NUMBER BETWEEN @PageLowerBound AND @PageUpperBound
I hope this helps.
Denny
On Tue, 15 Jul 2008 20:32:17 -0400, "Nathan Sokalski"
wrote:
>I would like to create a SELECT statement that returns a certain range of
>the results that a WHERE clause returns. For example, if the WHERE clause
>would return 75 records, I want a way to have the SELECT statement return
>the second 10 records, or the third 10 records, etc. I know how to use the
>TOP(x) clause, but that alone always returns the first x records. Is there a
>way to offset the starting point for which records to return? Thanks.
date: Tue, 15 Jul 2008 18:08:34 -0700
author: Denny Cherry
|
|