当前位置: 首页 > article >正文

SQL 常见的几种分页

摘自:https://www.cnblogs.com/nov5026/p/4732520.html

1. top/in

select top 10 * from UserLoginInfo
where id not in (select top 100 id from UserLoginInfo order by id)
order by id

2.top/exists
select top 10 * from UserLoginInfo
where not exists
(select 1 from (select top 100 id from UserLoginInfo order by id)a  where a.id=UserLoginInfo.id)
order by id

3.top/max
select top 10 * from UserLoginInfo
where id>(select max(id) from (select top 100 id from UserLoginInfo)a)

4.top/row_number
select top 10 * from
(select row_number()over(order by id)rownumber,* from UserLoginInfo)a
where rownumber>100

5.row_number/
select * from
(select row_number()over(order by id)rownumber,* from UserLoginInfo)a
where rownumber between 100 and 110
 

结论:

1.max/top,ROW_NUMBER()都是比较不错的分页方法。相比ROW_NUMBER()只支持sql2005及以上版本,max/top有更好的可移植性,能同时适用于sql2000,access。

2.not exists感觉是要比not in效率高一点点。

3.ROW_NUMBER()的3种不同写法效率看起来差不多。

4.特大数据量时order by会非常影响查询速度,row_number效率反而要查很多,而且在查询语句中尽量不用order by

本文移植自别处,笔者此处整理为方便自己理解和牢记

 

http://www.lryc.cn/news/2413991.html

相关文章:

  • 不看后悔!国内外程序员接单平台大合集!带你一次性了解各个热门接单平台!
  • 阿里 新零售领域的多模态知识图谱的建设与应用
  • 二进制0和负0的补码反码源码
  • JS压缩谁最强?对比5款JS代码压缩工具
  • 系统分析师——论文篇(三)
  • ESP8266 WebServer③-基于AsyncElegantOTA.h网页OTA升级
  • javascript高仿热血传奇游戏
  • 802.1D第一版出炉
  • Android开发-android:gravity和android:layout_Gravity属性的用法
  • 测试工具整理(3)——单元测试
  • 计算机网络的组成及通信子网和资源子网的划分
  • Java使用XDOC实现word,pdf等格式的生成及转换
  • 简单认识NHibrenate
  • OpenCV的copyTo()函数讲解及应用
  • ASP.Net学习心得
  • 用 Gmail 的 SMTP 发送邮件
  • 启动应用程序出现msflxgrd.ocx找不到问题解决
  • 鸿蒙原生应用元服务-访问控制(权限)开发工作流程相关
  • main.js_vue
  • 又一个好用的嵌入式设计框架
  • C#上下文菜单(右键菜单)ContextMenuStrip用法总结
  • 基于STC12C5A60S2系列1T 8051单片机的TM1637键盘数码管模块的数码管显示与TM1637芯片连接的按键的按键值的功能
  • JAX-WS 介绍 【转载】
  • 东方航空航班如何值机?
  • location.hash属性介绍
  • 键盘打字指法规范(附图解)
  • 什么是webservice
  • 数据中心日常运维主要工作内容具体包括哪些方面呢?
  • Windows系统缺少丢失mscoree.dll文件如何解决的?
  • 如何扩容C盘?6种扩展C盘方法!