iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >SQL使用ROW_NUMBER()OVER函数生成序列号
  • 895
分享到

SQL使用ROW_NUMBER()OVER函数生成序列号

2024-04-02 19:04:59 895人浏览 薄情痞子
摘要

语法:ROW_NUMBER() OVER(PARTITioN BY COLUMN ORDER BY COLUMN) 简单的说ROW_NUMBER()从1开始,为每一条分组记录返回一个

语法:ROW_NUMBER() OVER(PARTITioN BY COLUMN ORDER BY COLUMN)
简单的说ROW_NUMBER()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY CYLH DESC) 是先把xlh列降序,再为降序以后的每条CYLH记录返回一个序号。

示例: 

分析:ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

也可这样使用:ROW_NUMBER() OVER (ORDER BY COL2)

例子:

建立测试表,并插入测试数据


 CREATE TABLE TEST_ROW_NUMBER_01(
       CMZH varchar(10) not null,
       CYLH varchar(10) null,
       MJE money null,
);



INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES (2106000011,20281997,10.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000010,20281996,10.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000008,20281995,0.00)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000006,20281994,9.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000004,20281993,5.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000001,20281992,10.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000002,20281992,10.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000007,20217280,0.00)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000009,20172458,5.50)
INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000005,20121813,0.00)


执行脚本自动生成行号并按CYLH进行排序(滑动查看代码)


SELECT ROW_NUMBER()OVER(ORDER BY CYLH DESC) AS ROWNUM,* FROM TEST_ROW_NUMBER_01


结果如下:

 注意:在使用over等开窗函数时,over里头的分组及排序的执行晚于“wheregroup byorder by”的执行。

到此这篇关于sql使用ROW_NUMBER() OVER函数生成序列号的文章就介绍到这了,更多相关SQL用ROW_NUMBER() OVER生成序列号内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SQL使用ROW_NUMBER()OVER函数生成序列号

本文链接: https://www.lsjlt.com/news/161105.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL使用ROW_NUMBER()OVER函数生成序列号
    语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN) 简单的说ROW_NUMBER()从1开始,为每一条分组记录返回一个...
    99+
    2024-04-02
  • SQL如何使用ROW_NUMBER() OVER函数生成序列号
    这篇文章给大家介绍SQL如何使用ROW_NUMBER() OVER函数生成序列号,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ...
    99+
    2023-06-22
  • sql row_number函数怎么使用
    在SQL中,ROW_NUMBER()函数用于给结果集中的每一行分配一个唯一的数字。它常用于对结果集进行排序或筛选。 ROW_NUMB...
    99+
    2024-04-09
    sql
  • SQL Server中row_number函数怎么使用
    在SQL Server中,ROW_NUMBER()函数用于给结果集中的每一行分配一个唯一的顺序号。它的基本语法如下:```ROW_N...
    99+
    2023-08-14
    SQL Server row_number
  • Sql Server中如何使用Over()函数
    今天就跟大家聊聊有关Sql Server中如何使用Over()函数,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。利用over(),将统计信息计算出来...
    99+
    2024-04-02
  • 使用mysql.help_topic生成序列
    本文来说下如何使用mysql.help_topic生成序列 文章目录 问题由来使用实例 问题由来 有时我们在生成一些时间轴类似的数据时,要求数据库不管有没有指定天的数据,都要生成该时间节点,可用mysql.help_...
    99+
    2023-08-23
    dba 数据库开发
  • 使用redis如何生成自增序列号码
    目录Redis生成自增序列号码导入依赖yml 配置工具方法redis生成唯一编号redis生成自增序列号码 导入依赖 <!--redis--> <dependency> <groupId&...
    99+
    2022-11-23
    redis 自增 redis生成自增序列号 redis自增序列号
  • Python的range()函数:生成数字序列
    Python的range()函数:生成数字序列,需要具体代码示例Python是一种功能强大的编程语言,其中有许多内置的函数对于编写程序非常有帮助。其中之一就是range()函数,它用于生成一个数字序列。本文将详细介绍range()函数的用法...
    99+
    2023-11-18
    Python 序列 range()
  • MySQL5.7 实现类似 MySQL8.0 中 row_number() over(partition by ... order by ...) 函数的分组排序编号效果
    示例 现在这里有一张用户表 user,里面包含以下字段:ID 主键、USERNAME 用户名、PASSWORD 密码、COMPANY 公司、DEPT 部门、CREATE_TIME 创建时间。 IDUS...
    99+
    2023-09-24
    数据库 sql mysql
  • SQL中常用的窗口函数(排序函数)-row_number/rank/dense_rank/ntile
    总结四个函数的特点: row_number():连续不重复;1234567 rank() :重复不连续;1222567 dense_rank():重复且连续;1222345 ntile():平均分组;...
    99+
    2023-09-05
    mysql 数据库 大数据
  • python中什么函数用于生成数字序列
    python中生成数字序列的方法:在python中可以使用range()函数生成数字序列,range()函数主要是用来创建一个整数列表,一般在for循环中使用。具体内容如下:range()语法range(start, stop[, step...
    99+
    2024-04-02
  • Sql Server 开窗函数Over()的使用实例详解
    利用over(),将统计信息计算出来,然后直接筛选结果集 declare @t table( ProductID int, ProductName varchar(20), ProductTy...
    99+
    2024-04-02
  • 如何使用Linux seq命令生成数字序列
    这篇文章主要讲解了“如何使用Linux seq命令生成数字序列”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Linux seq命令生成数字序列”吧!Linux 的 seq 命令可以以...
    99+
    2023-06-16
  • sql server中怎么使用over()函数实现分组统计
    本篇文章为大家展示了sql server中怎么使用over()函数实现分组统计,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。需求:求出以产品类别为分组,各个分组里价...
    99+
    2024-04-02
  • 怎么使用初始化种子和unfold迭代函数生成列表
    这篇文章主要介绍“怎么使用初始化种子和unfold迭代函数生成列表”,在日常操作中,相信很多人在怎么使用初始化种子和unfold迭代函数生成列表问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用初始化种子...
    99+
    2023-06-25
  • python如何使用choice()函数生成随机数
    小编给大家分享一下python如何使用choice()函数生成随机数,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!choice(sequence)从序列中获取一个...
    99+
    2023-06-03
  • PHP反序列化函数怎么使用
    PHP的反序列化函数是`unserialize()`,用于将一个已经经过序列化的字符串转换回原始的PHP值。 使用方法非常简单,只需...
    99+
    2023-10-25
    PHP
  • oracle自增序列函数怎么使用
    这篇文章将为大家详细讲解有关oracle自增序列函数怎么使用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Oracle 自增序列函数使用 简介 Oracle 序列函数是一个用于生成唯一且递增的数字序列的内...
    99+
    2024-05-14
    Oracle序列函数 递增序列 自增序列 NEXTVAL CURRVAL
  • C语言使用rand函数生成随机数
    目录rand()函数函数原型:初步使用生成0到99的随机数再次运行 发现问题查看rand()函数的官方文档srand()函数srand的官方介绍初步使用srand()再次运行发现问题...
    99+
    2024-04-02
  • 如何在PHP中使用生成器函数
    在PHP中,生成器函数是一种强大的工具,可以帮助您高效地创建和处理大量数据。这种函数允许您生成一个序列,但是只在需要时才会计算下一个值,可以大大节省系统资源和执行时间。在这篇文章中,我们将介绍如何在PHP中使用生成器函数。什么是生成器函数?...
    99+
    2023-05-19
    PHP编程 生成器函数 迭代器对象
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作