如何在SQL Server中针对数据较多的表实现分部查询,一直是困扰我的一个不大不小的问题。曾经搜寻过解决方案,但由于水平和精力有限,无果而终。最近有幸在某同事处习得解决方案,欣喜之余,征得其同意,记录于博客。
在感叹学海浩瀚之余,也深感自己所学甚少。
select * from
(
select * , row_number() over(order by p.Id asc) as num
from T_Products(表名) p
where p.CategoryId=@CategoryId
)
s
where s.num between @Start and @End