SQL2005利用ROW_NUMBER()OVER实现分页功能
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了SQL2005利用ROW_NUMBER()OVER实现分页功能,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1540字,纯文字阅读大概需要3分钟。
内容图文
![SQL2005利用ROW_NUMBER()OVER实现分页功能](/upload/InfoBanner/zyjiaocheng/543/4cb04db877d344a98610e0e27a7010b5.jpg)
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条记录。
分页就这样实现了,对于多表查询进行分页也是同样的道理。
内容总结
以上是互联网集市为您收集整理的SQL2005利用ROW_NUMBER()OVER实现分页功能全部内容,希望文章能够帮你解决SQL2005利用ROW_NUMBER()OVER实现分页功能所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。