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记录返回一个序号。
示例:
分析: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
里头的分组及排序的执行晚于“where
,group by
,order 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