欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

【转载】Sqlserver数据库中无自增Id的情况下使用ROW_NUMBER()函数进行数据分页

程序员文章站 2022-04-08 19:13:50
在Sqlserver数据库中,如果查询表中含有自增长Id列,一般会采用select Top的方式来数据的分页操作。而实际上很多数据表设计的时候,不一定含有自增长Id列,那么数据库没有Id自增列的时候要对数据分页怎么办呢,此时则需要使用ROW_NUMBER()函数来对数据分页,ROW_NUMBER() ......

在sqlserver数据库中,如果查询表中含有自增长id列,一般会采用select top的方式来数据的分页操作。而实际上很多数据表设计的时候,不一定含有自增长id列,那么数据库没有id自增列的时候要对数据分页怎么办呢,此时则需要使用row_number()函数来对数据分页,row_number()一般与over(order by)一起连用。 

使用row_number来数据分页的格式如下:

with temptb as
(
   select row_number() over(order by 排序的列 asc) as rownumber,* from 数据表_table
)

select * from temptb  where rownumber>开始行号  and rownumber<结束行号;

举个例子,我们要查询student表中的学生数据,按学生出生日期从前到后排序,取出出生日期排在第31位到第60位的数据,语句如下:

with temptb as
(
   select row_number() over(order by birthday asc) as rownumber,* from student
)
select * from temptb where rownumber>30 and rownumber<=60

 

备注:原文转载自sqlserver使用row_number()函数进行数据分页_it技术小趣屋