SQL分页查询有两种方式,top方式方式和row_number()方式(row_number方式是SQLSERVER2005新增函数),下面就来介绍这两种方式。
查询第n条数。
1、通过top方式分页查询数据
我们每页查询5条数据,对T_Did升序排序.
查询第一条数据。
select top 5 * from tb_DStorage order by T_DId asc
查询第n条数。
查询第n条数据,首先找出已经查看过得数据,然后从整个数据中排除已经查看过得数据
select top 5 * from tb_DStorage where T_DId not in
(select top ((n-1)*5) T_DId from tb_DStorage order by T_DId asc)
order by T_DId asc
其中N为要查看的页数。
2、通过row_number()函数显示分页查询数据
row_number()函数是对查询出来的数据进行编号
select ROW_NUMBER() over( order by T_Did asc) as Rn,*
from tb_DStorage
效果:
其中Rn列为新增的编号列。
有个这个编号列,我们就可以很容易的对数据进行分组查看了。
查看第N页数据,默认每页显示7条
select * from
(select ROW_NUMBER() over( order by T_Did asc) as Rn,*
from tb_DStorage) as ds where ds.Rn between (N-1)*7+1 and N*7