ROW_NUMBER()的使用分页

先看一句代码:

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的记录。

原文地址:https://www.cnblogs.com/damoblog/p/8144145.html