Можете да използвате ROW_NUMBER
в TSQL (2005 нататък), за да направите това:
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
Или с LINQ-to-SQL и т.н.:
var qry = ctx.Table.Skip(50).Take(50); // or similar