数据分页查询

数据分页查询

当今只要大家要做的是每页伍条数据,而前几天我们要取第二页的数目。(数据太少,就每页5条了)

结果:

第第三建工公司立了3个表,随便插队的局地测试数据,表结构和数目如下图:

永利皇宫登录网址 1

此办法适用于Sql Server 二零零六之后的版本(不含)。

  select top 5 * 
  from [StuDB].[dbo].[ScoreInfo] 
  where [SID] not in 
    (select top 10 [SID] 
    from [StuDB].[dbo].[ScoreInfo] 
    order by [SID])
  order by [SID]

结果:

永利皇宫登录网址 2

结果:

方法二:

永利皇宫登录网址 3

  select * 
  from [StuDB].[dbo].[ScoreInfo]
  order by [SID] 
  offset 5*2 rows fetch next 5 rows only
  select * 
  from (select *,ROW_NUMBER() over(order by [SID]) ROW_ID from [StuDB].[dbo].[ScoreInfo]) t
  where t.[SID] between (5*(3-1)+1) and 5*3

结果:

方法三:

  select top 5 * 
  from [StuDB].[dbo].[ScoreInfo] 
  where [SID]> 
    (select MAX(t.[SID]) from (select top 10 [SID] from [StuDB].[dbo].[ScoreInfo] order by [SID]) t )
  order by [SID]

此办法的表征正是行使 ROW_NUMBE凯雷德()
函数,那个点子性能比前二种方法要好,只会遍历3次具备的多寡。适用于Sql
Server 两千从此的版本(不含)。

然而,最后三种方法的性质断定是远超前边二种办法的,具体的恐怕看实用。

此方法是先抽取前10条的SID(前两页),排除前10条数据的SID,然后在剩余的数码之中抽取前伍条数据。

永利皇宫登录网址 4

个人以为那么些主意比使用 ROW_NUMBERAV四()
函数的法子要好(从代码方面来看,代码也少许多),至于质量方面平素不做过测试,就不说了。

多年来学习了弹指间SQL的分页查询,计算了以下两种方法。

缺点是性质比较差,和艺术世界首次大战平。

永利皇宫登录网址 5

此措施是先收取前十条数据的SID,然后抽取SID的最大值,再从数量之中抽出大于 前10条SID的最大值 的前伍条数据。

永利皇宫登录网址 ,缺陷正是它会遍历表中有所数据四次,数据量大时品质糟糕。

方法四:

offset 拾 rows fetch next 五 rows only
那句代码笔者的精通是:跳过前面10条数据(前二页)从下一条早先取5条数据。

方法一:

网站地图xml地图