网站首页> 博客> Oracle、MySQL和SQL Server的分页查询语句
Oracle、MySQL和SQL Server的分页查询语句
好文
2550
由于在工作中多用的是Oracle或者Mysql数据库,所以对SQLsever不太了解,由于OneManage的用户们强烈要求加上SQLserver数据库版本,我抽时间看了下,除了
数据库连接不一样之外,分页也是有很大的不同,在动工之前列出这三种数据库分页的不同之处供大家参考。
假设当前是第PageNo页,每页有PageSize条记录,现在分别用Mysql、Oracle和SQL Server分页查询student表。
1、Mysql的分页查询:
1 SELECT2 * 3 FROM 4 student 5 LIMIT (PageNo - 1) * PageSize,PageSize;
理解:(Limit n,m) =>从第n行开始取m条记录,n从0开始算。
2、Oracel的分页查询:
1 SELECT 2 * 3 FROM 4 ( 5 SELECT 6 ROWNUM rn ,* 7 FROM 8 student 9 WHERE 10 Rownum <= pageNo * pageSize 11 ) 12 WHERE 13 rn > (pageNo - 1) * pageSize
理解:假设pageNo = 1,pageSize = 10,先从student表取出行号小于等于10的记录,然后再从这些记录取出rn大于0的记录,从而达到分页目的。ROWNUM从1开始。
3、SQL Server分页查询:
1 SELECT 2 TOP PageSize * 3 FROM 4 ( 5 SELECT 6 ROW_NUMBER () OVER (ORDER BY id ASC) RowNumber ,* 7 FROM 8 student 9 ) A 10 WHERE 11 A.RowNumber > (PageNo - 1) * PageSize
理解:假设pageNo = 1,pageSize = 10,先按照student表的id升序排序,rownumber作为行号,然后再取出从第1行开始的10条记录。
分页查询有的数据库可能有几种方式,这里写的可能也不是效率最高的查询方式,但这是我用的最顺手的分页查询,如果有兴趣也可以对其他的分页查询的方式研究一下。
- 加入微信群,不定期分享源码和经验
- 签到活跃榜 连续签到送额外金币
- 最新博客
- 校园跑腿系统外卖系统软件平台大学生创业平台搭建 667
- 壹脉销客智能名片CRM系统小程序可二开源码交付部署 654
- 为啥没搞了 1025
- Nginx 的 5 大应用场景,太实用了! 1248
- CentOS 8-stream 安装Postgresql 详细教程 1492
- JAVA智慧校园管理系统小程序源码 电子班牌 Sass 模式 1233
- Java智慧校园系统源码 智慧校园源码 智慧学校源码 智慧校园管理系统源码 小程序+电子班牌 982
- Java智慧校园系统源码 智慧校园源码 智慧学校源码 智慧校园管理系统源码 小程序+电子班牌 984
- 致远OA权限 1676
- 发博客会有金币吗 1013