极念网欢迎您!
SQL Server常用的数据库分页方法
作者:翅膀的初衷来源:本站原创发布时间:2014/5/19 22:16:29查看数:60880

数据分页是讨论比较广泛的一个基础性问题,特别是数据量比较大的情况下,本文列举SQL Server中几种常见的分页方法:

 

1.top……not top in

这是一个在很多年前,别特是SQL2000盛行的时候很流行的分页方法,当然,现在还在使用,使用示例:

 

select top 10 * from t_news where id not top in (select top 20 id from t_news)

 

点评:很经典的分页方法,通用性比较好!

 

2.row_number() over 

row_number是SQL2005新增的内容,必须是SQL2005及以上版本才支持,使用示例:

 

select * from ( select * from row_number() over(order by id desc) as n,* from t_news ) where n >=30 and n<40
 

点评:如果是数据库不是2000,推荐使用此方法替代top……not top in

 

3.判断主键大小来分页

这种分页最理想的情况是主键为数字类型且使用主键顺序或者倒序,另外上一页,下一页也可以使用本方法,使用示例:

 

select top 10 * from t_news where id>11024

或者

select top 10 * from t_news where id>(select max(id) from (select top 20 id from t_news) t)

 

点评:效率不错,不过局限性比较多,比如如果需要自定义排序……!

 

另外如果是mysql或者sqlite还可以使用limit