“分页”SELECT SQL服务器

时间:2013-03-27 22:08:16

标签: sql sql-server performance pagination

我有一个包含100行的表,并且想要只选择它们的一部分(例如从第20行到第30行),就像“分页”SELECT一样。

这是在SQL Server 2008 R2中执行此操作的有效方法吗?

1 个答案:

答案 0 :(得分:3)

你可以这样做(假设你的表被调用" tablename",你的主键是id,你想要行10到15)。

select * from 
(select *,row_number() over (order by id) as r from tablename)
t where r >10 and r < 15;

它可能看起来效率低下但是(在某种程度上)它是如何在linq内部完成的。