您现在的位置是:网站首页> 编程资料编程资料
分享三种高效率SQL语句分页方法_数据库其它_
2023-05-27
489人已围观
简介 分享三种高效率SQL语句分页方法_数据库其它_
1.如果有一个自动增长的id字段,则:
定义二个变量:Page,PageCount
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
原理,根据ID计算出(Page-1)页的最小值,然后用TOP关键字及可解决问题。
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分页(rownum函数使用方法介绍)
比方说要从表USER中查看第10到第20条之间的数据,那么SQL是这样实现的
SELECT * FROM (SELECT rownum rowcount,USER.* FROM USER) WHERE ROWCOUNT >=10 AND ROWCOUNT <20
其中函数ROWNUM,用来记录每一条数据所在的位置。
定义二个变量:Page,PageCount
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
原理,根据ID计算出(Page-1)页的最小值,然后用TOP关键字及可解决问题。
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分页(rownum函数使用方法介绍)
比方说要从表USER中查看第10到第20条之间的数据,那么SQL是这样实现的
SELECT * FROM (SELECT rownum rowcount,USER.* FROM USER) WHERE ROWCOUNT >=10 AND ROWCOUNT <20
其中函数ROWNUM,用来记录每一条数据所在的位置。
您可能感兴趣的文章:
相关内容
- 未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序错误的解决方法_数据库其它_
- 数据库测试 实用技巧及测试方法_数据库其它_
- 数据库为何要建立索引的原因说明_数据库其它_
- 数据库设计规范化的五个要求 推荐收藏_数据库其它_
- SQLServer 2005 和Oracle 语法的一点差异小结_数据库其它_
- MDAC2.8 安装问题与解决方法_数据库其它_
- 大数据量,海量数据处理方法总结_数据库其它_
- 程序员应该知道的数据库设计的两个误区_数据库其它_
- MSSQL转MySQL数据库的实际操作记录_数据库其它_
- mysql "group by"与"order by"的研究--分类中最新的内容_数据库其它_