设为首页收藏本站

安徽论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 12068|回复: 0

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

[复制链接]

83

主题

0

回帖

261

积分

中级会员

Rank: 3Rank: 3

积分
261
发表于 2022-3-26 11:00:30 | 显示全部楼层 |阅读模式
网站内容均来自网络,本站只提供信息平台,如有侵权请联系删除,谢谢!
语法:
  1. ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)<br />
复制代码
简单的说
  1. ROW_NUMBER()
复制代码
从1开始,为每一条分组记录返回一个数字,这里的
  1. ROW_NUMBER() OVER (ORDER BY CYLH DESC)
复制代码
是先把xlh列降序,再为降序以后的每条CYLH记录返回一个序号。
示例: 

分析:
  1. ROW_NUMBER() OVER (PARTITION BY COL1 ORDER BY COL2)
复制代码
表示根据COL1分组,在分组内部根据
  1. COL2
复制代码
排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
也可这样使用:
  1. ROW_NUMBER() OVER (ORDER BY COL2)
复制代码
  1. 例子:
复制代码
建立测试表,并插入测试数据
  1. CREATE TABLE TEST_ROW_NUMBER_01(
  2.        CMZH varchar(10) not null,
  3.        CYLH varchar(10) null,
  4.        MJE money null,
  5. );
复制代码
  1. INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES (2106000011,20281997,10.50)
  2. INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000010,20281996,10.50)
  3. INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000008,20281995,0.00)
  4. INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000006,20281994,9.50)
  5. INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000004,20281993,5.50)
  6. INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000001,20281992,10.50)
  7. INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000002,20281992,10.50)
  8. INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000007,20217280,0.00)
  9. INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000009,20172458,5.50)
  10. INSERT INTO TEST_ROW_NUMBER_01(CMZH,CYLH,MJE) VALUES(2106000005,20121813,0.00)
复制代码
执行脚本自动生成行号并按CYLH进行排序(滑动查看代码)
  1. SELECT ROW_NUMBER()OVER(ORDER BY CYLH DESC) AS ROWNUM,* FROM TEST_ROW_NUMBER_01
复制代码
结果如下:

 注意:在使用
  1. over
复制代码
等开窗函数时,
  1. over
复制代码
里头的分组及排序的执行晚于“
  1. where
复制代码
  1. group by
复制代码
  1. order by
复制代码
”的执行。
到此这篇关于SQL使用ROW_NUMBER() OVER函数生成序列号的文章就介绍到这了,更多相关SQL用ROW_NUMBER() OVER生成序列号内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
                                                        
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
免责声明
1. 本论坛所提供的信息均来自网络,本网站只提供平台服务,所有账号发表的言论与本网站无关。
2. 其他单位或个人在使用、转载或引用本文时,必须事先获得该帖子作者和本人的同意。
3. 本帖部分内容转载自其他媒体,但并不代表本人赞同其观点和对其真实性负责。
4. 如有侵权,请立即联系,本网站将及时删除相关内容。
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表