• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > SQL2005利用ROW_NUMBER() OVER实现分页功能

SQL2005利用ROW_NUMBER() OVER实现分页功能

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了ROW_NUMBER()等相关知识,希望本文的分享对您有所帮助

SQL2005利用ROW_NUMBER() OVER实现分页功能,需要的朋友可以参考下

1.首先介绍ROW_NUMBER() OVER的基本用法


2.看一下实例数据

初始化数据

create table employee (empid int ,deptid int ,salary decimal(10,2))

insert into employee values(1,10,5500.00)

insert into employee values(2,10,4500.00)

insert into employee values(3,20,1900.00)

insert into employee values(4,20,4800.00)

insert into employee values(5,40,6500.00)

insert into employee values(6,40,14500.00)

insert into employee values(7,40,44500.00)

insert into employee values(8,50,6500.00)

insert into employee values(9,50,7500.00)

数据结果显示


根据部门分组(deptid),显示每个部门的工资(salary)等级


这是想要得到的结果第二列根据部门进行分组,第三列工资由高到低,rank进行部门内部的排列

3.简单分页实现

SELECT Row_Number() OVER (ORDER BY salary desc) rank,* FROM employee

根据上面1,2两点我们可以看出这个SQL只是按照工资降序排序后,并没有通过PARTITION BY COLUMN进行分区(分组),然后通过row_number()从1开始,为每一条分组记录返回一个数字。结果如下


将上面SQL返回的结果集当作一个数据表

(SELECT Row_Number() OVER (ORDER BY salary desc) rank,* FROM employee)as NewTable

假如我们每页5条记录,

那么第一页显示select * from (SELECT Row_Number() OVER (ORDER BY salary desc) rank,* FROM employee ) as NewTable where rank between 1 and 5


第二页为select * from (SELECT Row_Number() OVER (ORDER BY salary desc) rank,* FROM employee ) as NewTable where rank between 6 and 10


当然我们第二页这里只有4条记录。

分页就这样实现了,对于多表查询进行分页也是同样的道理。

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11mysql自定义排序顺序语句
  • 2017-05-11mysql 记录不存在时插入 记录存在则更新的实现方法
  • 2018-12-05关于mysql explain中key_len的计算方法讲解
  • 2018-12-05MySQL server has gone away 问题的解决方法
  • 2017-05-11Mysql存储过程学习笔记--建立简单的存储过程
  • 2018-12-05什么是MySQL数据库?及MySQL特点
  • 2018-12-05Oracle 多行记录合并/连接/聚合字符串的几种方法
  • 2018-12-05如何从WDCP上备份MYSQL数据库
  • 2018-12-05MYSQL自检时提示:[Microsoft][ODBC 驱动程序管理器] 未发现数据
  • 2018-12-05MySQL动态添加、删除和修改列字段教程

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • 彻底删除免安装版mysql
    • MySQL性能优化 出题业务SQL优化
    • MYSQL administrator 使用
    • mysql SKIP-NAME-RESOLVE 错误的使用时机造成用户权限
    • C# 连接Access数据时总报找不到dbo.mdb的问题
    • mysql(10061)报错临时解决办法
    • 教您修复mysql数据库的方法
    • MySQL InnoDB和MyISAM数据引擎的差别分析
    • 监控 log文件大小的存储过程
    • sql2005 附加数据库出错(错误号:5123)解决方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有