先看一句代码:
select *,row_number() OVER(ORDER BY 教师工号) AS 字段编号 from 教师表
其中ROW_NUMBER()函数根据‘教师工号’这列来生成一个新的数据列‘字段编号’,并且是按照升序来进行编号的。
教师工号 教师姓名 教学课程编号 教学课程 字段编号
--------------- -------------------- -------------------- -------------------- --------------------
200401 赵子丹 1001 ASP.NET 1
200402 李林 1001 ASP.NET 2
200403 黄建波 1001 ASP.NET 3
200404 易明 1002 JAVA 4
200405 张理 1002 JAVA 5
200406 吴平 1002 JAVA 6
200407 小燕 1003 数据结构 7
200408 肖行 1003 数据结构 8
200409 李峰 1005 计算机组成原理 9
200410 张明 1005 计算机组成原理 10
200411 王学军 1006 思想品德 11
200412 肖舒 1006 思想品德 12
200413 孟爷 1001 ASP.NET 13
下边来看一个对ROW_NUMBER()函数的简单分页应用:
SELECT * FROM
(select *,row_number() OVER(ORDER BY 教师工号) AS 字段编号 from 教师表) a
WHERE a.字段编号BETWEEN 5 AND 10
根据上面的sql语句可以查询出5-10的记录。