学习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
View Code

相关文章: