学习SqlServer到现在快两年了吧,分页查询总是忘了看笔记,看了又忘。之前用的分页都是row_number函数的方式,背不住。。。直到今天,看到别人写的另一种分页写法,看似比row_number简单。好记。。。
分页原理:越过多少条,取多少条
-- 一页取五条 select top(5) * from Employees where EmployeeID not in ( -- 越过多少条(越过多少页*每页的条数) select top(5*2) EmployeeID from Employees order by EmployeeID )order by EmployeeID
以前用的row_number函数的方式也记录一下吧
--两种写法没什么两样,都可以实现, --between 第一种 select * from ( select *,row_number() over(order by id)as number from Student )as s where s.number between 5 and 8 --第二种 select * from ( select*,row_number()over(order by id) as num from Student )as stu where stu.num>=20 and stu.num<=30