ROW_NUMBER 函数
ROW_NUMBER 是 SQL 2005 中新增的函数, 多用于分页, 基本的语法为
ROW_NUMBER() OVER([<partition_by_clause>] <order_by_clause>)
其中, 分区语句是可选的, 排序语句是必须的, 比如这样的语句:
SELECTROW_NUMBER() OVER(ORDER BY ProductID),CategoryID,ProductName,UnitPrice
FROMProducts
输出结果为:
也可以按照 CategoryID 对行号进行分区, 也就是将行号按照 CategoryID 进行分组, 例如:
SELECTROW_NUMBER() OVER(PARTITION BY CategoryID ORDER BY ProductID),CategoryID,ProductName,UnitPrice
FROMProducts
返回结果为:
ROW_NUMBER 通常用于分页, 但是也有一些巧妙地用法, 例如, 要查询每个分类中最便宜的三种产品, 可以使用下面的查询语句:
SELECT * FROM
(SELECTROW_NUMBER() OVER(PARTITION BY CategoryID ORDER BY UnitPrice) AS 'RowNum',CategoryID,ProductName,UnitPriceFROMProducts
) AS p
WHERERowNum <= 3
返回结果为:
ROW_NUMBER 函数相关推荐
- Sql Server 2005 ROW_NUMBER 函数实现分页
过去用SQL Server 2000分页的,大多都用到了临时表.SQL Server 2005 ROW_NUMBER 函数支持分页,性能据说也非常不错. Paging Records Using SQ ...
- [转]SQL2005后的ROW_NUMBER()函数的应用
SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单 分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系 ...
- Oracle的row_number函数
row_number函数 语法格式 row_number() over (partition by a order by b) 语法说明 将表按照a字段进行分组,然后,按照b字段进行组内排序 并给出排 ...
- oracle分组_MySQL分组取TOP,实现Oracle的ROW_NUMBER函数的功能
Excel中分组排序只需要对数据进行升序降序,再利用if函数添加排序序号,即可筛选出分组top数据. Oracle也有row_number()函数对数据进行分组排序,而MySQL并没有此类函数,那么如 ...
- [MSSQL]ROW_NUMBER函数
ROW_NUMBER()在SQL2K5版本中新增,该函数返回结果集分区内行的序列号,每个分区的第一行从 1 开始,连续不间断,后跟OVER BY子句或者PARTITION BY子句 先构造一张表,放一 ...
- 浅析row_number()函数【HQL】
语法格式:row_number() over(partition by 分组列 order by 排序列 desc) row_number() over()分组排序功能: 在使用 row_number ...
- T-SQL利用Row_Number函数实现分页
SQL: CREATE PROCEDURE PagingViewTest (@currentPageIndex INT, --页序号@pageSize INT, --页大小@pageCount INT ...
- hive的row_number()函数
hive的row_number()函数 功能 用于分组,比方说依照uuid分组 组内可以依照某个属性排序,比方说依照uuid分组,组内按照imei排序 语法为row_number() over (pa ...
- SQL中 ROW_NUMBER 函数的用法
SQL中 ROW_NUMBER 函数的用法 ROW_NUMBER()函数将针对SELECT语句返回的每一行,从1开始编号,赋予其连续的编号.在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是 ...
- SQL Server数据库partition by 与ROW_NUMBER()函数使用详解[转]
关于SQL的partition by 字段的一些用法心得 先看例子: if object_id('TESTDB') is not null drop table TESTDB create table ...
最新文章
- kubernetes ConfigMap
- java map取第一个元素_Java Set接口 Map 与枚举
- Spring Boot笔记-对dto数据传输对象及物联网公司主创建主键的认识
- MapReduce之join操作
- Android7.1 Offload模式下的音频数据播放流程
- redis 常用配置文件配置
- mysql 分区表 归档_详解 MySQL 数据库冷数据归档
- linux命令kp使用方法,Linux 命令 使用
- 程序员写代码时你戴耳机是为了撩妹儿吗?感觉有点酷!
- ruoyi第三方登入Gitee
- 软件测试人员的年终绩效考核怎么应对
- linux(centos) 保存退出vi编辑
- java 读写文件乱码_Java 解决读写本地文件中文乱码的问题
- 《计算机科学概论(第12版)》—第1章1.10节通信差错
- 用牛顿迭代法求方程的根matlab,牛顿迭代法求方程根的MATLAB程序
- 缉拿隐藏进程以及隐藏CPU利用率的进程
- MATLAB学习第五章矩阵
- 数据驱动决策:BI在零售业的数据化管理
- Android学习-通知的使用详解
- 以患者到医院就诊为背景,使用列表对象(ArrayList)和泛型机制实现就诊排队叫号系统