retrieve specific range of rows in a SQL Server table
.net, ado.net, c#, sql-server-2008
Solution
You can use `ROW_NUMBER` in TSQL (2005 onwards) to do this:
SELECT ID, Foo, Bar
FROM (SELECT ROW_NUMBER() OVER (ORDER BY ID ASC) AS Row,
ID, Foo, Bar
FROM SomeTable) tmp
WHERE Row >= 50 AND Row <= 100
Or with LINQ-to-SQL etc:
var qry = ctx.Table.Skip(50).Take(50); // or similar
Problem
I have a table structure like (OrderID [uniqueidentifier], OrderDesciption [nvarchar]), I am using ADO.Net + C# + VSTS 2008 + SQL Server 2008. The table is big, and I want to let client give me two inputs, begin range index and end range index, and I will return specific rows of the table which is in the range (between begin range index and end range index). For example, if the client inputs to me 50, 100, and I want to return the 50th row until the 100th row. thanks in advance, George