博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQLServer分页查询笔记
阅读量:5264 次
发布时间:2019-06-14

本文共 1164 字,大约阅读时间需要 3 分钟。

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

论上面两者的效率的话,数据量不是很大的时候也都差不多吧,数据量大的时候也许row_number更高效些。第一种方式取前面部分和后面部分的数据比较高效,如果说数据量很大用第一种方式取中间部分数据的话相对来说比较慢的。

row_number函数分页相对来说比较通用

 

刚刚搜索引擎查了下分页方法,没想到还有其他方法。。在这也记一下吧,虽然对其还不是很理解,有时间在看看相关资料了解一下

--跳过多少条,取多少条        offset 需要跳过的条数    rows fetch next 每页取的条数 rows onlyselect * from City order by CityId offset 5 rows fetch next 5 rows only

查询结果:

这个分页方法我对它的理解是  offset(需要跳过的条数)  假设一页分10条,你当前是第三页那么就填(3*10)当前页*每页的条数,next (每页的条数),如果每页显示10条,那么就是 next 10

以上纯属个人理解

offset--->偏移      next--->下一个

 

转载于:https://www.cnblogs.com/heheblog/p/SQLServer_Study_20180723.html

你可能感兴趣的文章
区分多态和重载的区别
查看>>
抓取天猫手机评论
查看>>
模板设计模式的应用
查看>>
【井字游戏】做一款回忆童年的游戏
查看>>
testNG中@Factory详解
查看>>
[模拟赛] StopAllSounds
查看>>
高性能的异步爬虫
查看>>
数据结构(二):栈
查看>>
实训第五天
查看>>
平台维护流程
查看>>
SQL (FMDB)
查看>>
2012暑期川西旅游之总结
查看>>
Linux发行版的排行
查看>>
宾得镜头大全与发展史
查看>>
spread+wackamole打造全新高可用+负载均衡
查看>>
sql语句中的left join,right join,inner join的区别
查看>>
Xcode 快捷键及代码格式化
查看>>
在 Swift 项目中实现侧滑菜单-利用 SWRevealViewController
查看>>
Android JNI 传递对象
查看>>
Android TextView drawableLeft 在代码中实现
查看>>