黑马程序员技术交流社区
标题:
数据库中关于Row_Number()的用法?
[打印本页]
作者:
肖云
时间:
2012-6-25 03:23
标题:
数据库中关于Row_Number()的用法?
数据库中关于Row_Number()应该怎么用,教程中将的不清楚,谁帮忙说明一下,最好是举例说明,不胜感激!
作者:
许庭洲
时间:
2012-6-25 09:11
row_number函数的功能是为查询出来的每一行记录生成一个序号;
例如SQL:select row_number() over(order by field1) as row_number, * from t_field;
上面SQL语句查询结果如下所示:
1.JPG
(9.64 KB, 下载次数: 38)
下载附件
2012-6-25 09:10 上传
作者:
小高
时间:
2012-6-25 18:55
语法: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排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)
作者:
肖云
时间:
2012-6-25 23:50
多谢许庭洲,多谢小高,我懂了
作者:
xiaozehope
时间:
2012-6-30 23:40
补充一下,ROW_NUMBER()是用于查询第几条到第几条数据的一个函数,sql2005以上才有的,ROW_NUMBER() 后面的over()是排序的字段。
作者:
程艳伟
时间:
2012-7-1 13:39
Row_Number()就是为你查询的没行编号,但是sql2000是没有该方法的,以前用动软生成分页方法,里面有个row_number(),到2000的数据库上竟然没有该方法,后来千辛万苦自己把这个方法用sql语句代替了,但是一直担心会漏掉数据或重复数据
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2