三种高功效SQL语句分页方法

作者:必威体育网页进入    发布时间:2020-05-02 20:46    浏览:115 次

[返回]

SELECT TOP 页大小 *FROM table1WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id )ORDER BY id

在SQL Server 二零零七中接收rownum分页(rownum函数使用格局介绍)

方法3:适用于 SQL Server 2005

  Select top PageCount * From [tb_code] Where id>=(select min(id) from (select top (Page-1)*PageCount+1 id from [tb_code] order by id desc) as t) order by id desc

方法1:适用于 SQL Server 2000/2005

  定义叁个变量:Page,PageCount

1.比方有二个自行增进的id字段,则:

  优点:此方法能够遵照表中的任四个字段排序.
  劣势是效用最低

可取:此办法能够依照表中的任三个字段排序. 劣势是效能最低

因而SQL 查询解析器,显示相比较:小编的下结论是:分页方案二:(利用ID大于多少和SELECT TOP分页)功用最高,须要拼接SQL语句分页方案一:(利用Not In和SELECT TOP分页卡塔尔国效能次之,须求拼接SQL语句分页方案三:(利用SQL的游标存款和储蓄进度分页State of Qatar功效最差,不过最为通用

2.SELECT TOP 10 id,username From [tb_code] where id not in
( SELECT TOP 20000 id FROM tb_code ORDER BY username)

优点:此方式能够依靠表中的任多个字段排序,在二个表中有几百万条记下时,仍然有异常高的功能,短处是在大数据量的情事下功效略逊于第一种

3.SELECT TOP 10 id,username From
(SELECT TOP page*pagecount id, username FROM tb_code ORDER BY username)
DERIVEDTBL ORDER BY username DESC

在SQL Server 2005中使用rownum分页

举个例子说要从表USERubicon中查阅第10到第20条之间的数目,那么SQL是那般实现的

由此SQL 查询分析器,呈现相比:作者的下结论是:分页方案二:(利用ID大于多少和SELECT TOP分页)成效最高,须要拼接SQL语句分页方案一:(利用Not In和SELECT TOP分页卡塔尔国成效次之,须要拼接SQL语句分页方案三:(利用SQL的游标存款和储蓄进度分页)作用最差,可是最为通用

其间函数ROWNUM,用来记录每一条数据所在的岗位。

SELECT TOP 页大小 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1 ) AWHERE RowNumber 页大小*(页数-1)

SELECT * FROM (SELECT rownum rowcount,USER.* FROM USER) WHERE  ROWCOUNT >=10 AND ROWCOUNT <20

概念二个变量:Page,PageCount

 

搜索