位置: 编程技术 - 正文
1.首先介绍ROW_NUMBER() OVER的基本用法
2.看一下实例数据
初始化数据
create table employee (empid int ,deptid int ,salary decimal(,2))
insert into employee values(1,,.)
insert into employee values(2,,.)
insert into employee values(3,,.)
insert into employee values(4,,.)
insert into employee values(5,,.)
insert into employee values(6,,.)
insert into employee values(7,,.)
insert into employee values(8,,.)
insert into employee values(9,,.)
数据结果显示
根据部门分组(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
当然我们第二页这里只有4条记录。
分页就这样实现了,对于多表查询进行分页也是同样的道理。
推荐整理分享SQL2005利用ROW_NUMBER() OVER实现分页功能(sql row_number()over()),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:sql row_number()over() where,sql row_number()over() where,sql row num,sql语句row_number,sql中row_number的用法,sql row num,sql语句row_number,sql row num,内容如对您有帮助,希望把文章链接给更多的朋友!
Win7 /位系统下安装SQL和SP3补丁安装教程[图文] 先打开安装程序。选择对应的系统版本,我是位,所以选了X。然后选择安装——服务器组件、工具、联机丛书和示例扫描你的系统,看看有没有问题
SQLServer重建索引前后对比分析 在做维护项目的时,我们经常会遇到索引维护的问题,通过语句,我们就可以判断某个表的索引是否需要重建。执行一下语句:先分析表的索引分析表
SQL ERROR: 解决办法(备份集中的数据库备份与现有的数据库不同) 出现错误备份集中的数据库备份与现有的数据库不同网上解决办法不少,测试下来都是半吊子,错误还是存在摸索中,解决了1.新建一个与现有数据
上一篇:sql2005 日志清理 SQL2005压缩清除日志的方法(sql2000日志清理)
下一篇:Win7 32/64位系统下安装SQL2005和SP3补丁安装教程[图文]
友情链接: 武汉网站建设