您好,欢迎来到九壹网。
搜索
您的当前位置:首页row_number() over 用法

row_number() over 用法

来源:九壹网
row_number() over 用法

一、row_number() over用法

row_number() over函数是DB2数据库中的一种窗口函数,它可以在查询结果集中为每一行分配一个唯一的行号。它的基本语法如下: row_number() over(partition by 字段名 order by 字段名 [desc]) as 别名

1. partition by 字段名:可以用来定义行号的划分,它的根据指定的字段来分组,每一组里面获取的行号都从1开始计算。 2. order by 字段名:用来对各个组中的行号进行排序,可以使用升序或者降序,默认是升序排序,如果要使用降序排,则需要在字段名后面加入desc标识。 例如:

select row_number() over(partition by deptno order by sal desc) as rn, empno,ename,sal,deptno from emp;

这个查询的结果将会根据emp表中的deptno字段进行分组,然后在每一组内部按sal字段降序进行排序,最后给每一行结果集分配一个从1开始的行号。

二、row_number() over用于分页

row_number() over也可以用来实现分页功能,对于大量数据的分页查询场景,使用这种方式会比其他方式更有效率。其基本语法如下:

- 1 -

select * from (

select row_number() over(order by 字段名) as rn,* from 表名 )

where rn between (当前页码 - 1) * 每页记录数 + 1 and 当前页码 * 每页记录数

这里主要是将查询结果集根据指定的规则排序(按照某个字段),然后在每一行分配一个唯一的行号,最后再根据指定的页码和每页记录数获取对应的分页数据。

- 2 -

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务