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

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

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了sql2005,sql2005安装图解,sql2005 64位下载,sql2005数据库下载,sql2005中文版下载等相关知识,希望本文的分享对您有所帮助

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条记录。

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

 

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

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

  • SQL2005重新生成索引的的存储过程 sp_rebuild_index 原创
  • SQL2005查看死锁存储过程sp_who_lock
  • 解决无法配置SQL2005问题
  • sql2005 本地计算机上的SQL SERVER服务启动后又停止了解决方法
  • SQL2005 provider: 命名管道提供程序 error: 40 无法打开到 SQL Server 的连接
  • 安装SQL2005时出现的版本变更检查SKUUPGRADE=1问题的解决方法
  • SQL2005Express中导入ACCESS数据库的两种方法
  • Win2008中安装的MSSQL2005后无法访问的解决方法
  • sql2005附加数据库操作步骤(sql2005还原数据库)
  • sql2005数据导出方法(使用存储过程导出数据为脚本)

相关文章

  • 2017-05-11SQL 2008安装时出现从新启动计算机提示如何解决
  • 2017-05-11SQL Server 2008 R2安装配置方法图文教程
  • 2017-05-11SQL2008定时任务作业创建教程
  • 2017-05-11SQL Server 2008 安装和配置图解教程(附官方下载地址)
  • 2017-05-11使用SQL Server 2008远程链接时SQL数据库不成功的解决方法
  • 2017-05-11SQLServer APPLY表运算符使用介绍
  • 2017-05-11sql2008安装后服务器改名造成名称不一致解决方法
  • 2017-05-11SQL Server 2008 数据库镜像部署实例之二 配置镜像,实施手动故障转移
  • 2017-05-11SQL Server 移动系统数据库
  • 2017-05-11Sql server 2005安装时ASP.Net版本注册要求警告的解决方法

文章分类

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

最近更新的内容

    • 数据库索引优化
    • 关于MSSQL 2005的安装与补丁
    • sql2005 存储过程分页代码
    • SQL Server 2008 数据库镜像部署实例之三 配置见证服务器
    • SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法
    • sql2005 批量更新问题的解决方法
    • SQL server 2008 数据库优化常用脚本
    • 解析SQL2005中如何使用CLR函数获取行号
    • SQLServer APPLY表运算符使用介绍
    • SQL2005中char nchar varchar nvarchar数据类型的区别和使用环境讲解

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

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