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

作者:蓝涩街灯 时间:2024-01-18 18:14:35 

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

示例: 

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

分析: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

结果如下:

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

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

来源:https://www.cnblogs.com/since-1995/p/15629029.html

标签:ROW,NUMBER()OVER,自动,生成,序列号
0
投稿

猜你喜欢

  • Python使用MapReduce编程模型统计销量

    2021-07-16 14:24:43
  • 新年快乐! python实现绚烂的烟花绽放效果

    2022-01-15 13:18:00
  • 微信小程序使用component自定义toast弹窗效果

    2024-05-25 15:17:45
  • Spring Boot中使用Spring-data-jpa实现数据库增删查改

    2024-01-28 09:41:28
  • asp 隐藏并修改文件的最后修改时间

    2011-03-29 10:34:00
  • python获取从命令行输入数字的方法

    2021-08-23 15:19:02
  • Python实现Windows和Linux之间互相传输文件(文件夹)的方法

    2022-10-15 07:08:14
  • Python将图片批量从png格式转换至WebP格式

    2023-01-11 00:27:49
  • Js过滤空格的实现代码

    2010-08-20 09:38:58
  • 几个MySQL高频面试题的解答

    2024-01-19 05:13:49
  • 详解duck typing鸭子类型程序设计与Python的实现示例

    2022-12-26 07:12:19
  • Python Opencv图像处理基本操作代码详解

    2023-06-08 08:08:05
  • 使用Python写一个量化股票提醒系统

    2022-04-19 14:35:42
  • mysql show操作简单示例

    2024-01-24 14:42:52
  • 在Linux上安装Python的Flask框架和创建第一个app实例的教程

    2021-08-26 14:23:11
  • 使用JavaScript实现网页版Pongo设计思路及源代码分享

    2024-04-10 10:48:07
  • Python切割图片成九宫格的示例代码

    2023-07-10 07:00:57
  • python3.7.2 tkinter entry框限定输入数字的操作

    2021-02-22 14:40:36
  • Django实现图片上传功能步骤解析

    2022-06-25 19:35:43
  • PHP正则表达式替换<pre>标签外的内容

    2023-05-22 10:47:12
  • asp之家 网络编程 m.aspxhome.com