A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 肖云 中级黑马   /  2012-6-25 03:23  /  1988 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

数据库中关于Row_Number()应该怎么用,教程中将的不清楚,谁帮忙说明一下,最好是举例说明,不胜感激!

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

5 个回复

倒序浏览
row_number函数的功能是为查询出来的每一行记录生成一个序号;
例如SQL:select row_number() over(order by field1) as row_number, * from  t_field;
上面SQL语句查询结果如下所示:

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
语法:ROW_NUMBER() OVER(PARTITION BY COLUMN ORDER BY COLUMN)

简单的说row_number()从1开始,为每一条分组记录返回一个数字,这里的ROW_NUMBER() OVER (ORDER BY xlh DESC) 是先把xlh列降序,再为降序以后的没条xlh记录返回一个序号。
示例:
xlh           row_num
1700              1
1500              2
1085              3
710                4

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

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
多谢许庭洲,多谢小高,我懂了
回复 使用道具 举报
补充一下,ROW_NUMBER()是用于查询第几条到第几条数据的一个函数,sql2005以上才有的,ROW_NUMBER() 后面的over()是排序的字段。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
Row_Number()就是为你查询的没行编号,但是sql2000是没有该方法的,以前用动软生成分页方法,里面有个row_number(),到2000的数据库上竟然没有该方法,后来千辛万苦自己把这个方法用sql语句代替了,但是一直担心会漏掉数据或重复数据

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马