SQL如何使用ROW_NUMBER() OVER函数生成序列号(SQL,开发技术)

时间:2024-04-30 09:02:12 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

语法: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)

例子:

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

CREATETABLETEST_ROW_NUMBER_01(CMZHvarchar(10)notnull,CYLHvarchar(10)null,MJEmoneynull,);
INSERTINTOTEST_ROW_NUMBER_01(CMZH,CYLH,MJE)VALUES(2106000011,20281997,10.50)INSERTINTOTEST_ROW_NUMBER_01(CMZH,CYLH,MJE)VALUES(2106000010,20281996,10.50)INSERTINTOTEST_ROW_NUMBER_01(CMZH,CYLH,MJE)VALUES(2106000008,20281995,0.00)INSERTINTOTEST_ROW_NUMBER_01(CMZH,CYLH,MJE)VALUES(2106000006,20281994,9.50)INSERTINTOTEST_ROW_NUMBER_01(CMZH,CYLH,MJE)VALUES(2106000004,20281993,5.50)INSERTINTOTEST_ROW_NUMBER_01(CMZH,CYLH,MJE)VALUES(2106000001,20281992,10.50)INSERTINTOTEST_ROW_NUMBER_01(CMZH,CYLH,MJE)VALUES(2106000002,20281992,10.50)INSERTINTOTEST_ROW_NUMBER_01(CMZH,CYLH,MJE)VALUES(2106000007,20217280,0.00)INSERTINTOTEST_ROW_NUMBER_01(CMZH,CYLH,MJE)VALUES(2106000009,20172458,5.50)INSERTINTOTEST_ROW_NUMBER_01(CMZH,CYLH,MJE)VALUES(2106000005,20121813,0.00)

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

SELECTROW_NUMBER()OVER(ORDERBYCYLHDESC)ASROWNUM,*FROMTEST_ROW_NUMBER_01

结果如下:

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

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

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:SQL如何使用ROW_NUMBER() OVER函数生成序列号的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:vue中的$attrs和$listeners属性及用法是什么下一篇:

8 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18