简单分页存储过程原理
2010-12-29 09:21
525 查看
昨天看了几个通用的分页存储过程,代码又长有复杂,以后要用怎么办呢?鄙人对其进行总结发现其中的原理,以后就可以自己写。不用去找去拷贝。
随笔中总结的不好或者需要改正,欢迎高手或浏览者提出意见和建议,在此谢谢!
几乎所有的分页存储过程的第一页显示都是一样的。(代码中的表来自:数据库(Northwind))
第一种方法:
显示其他页:升降序中10表示:每页记录数;30表示:指定页*每页记录数;20表示:[(指定页-1)*每页记录数]
代码
其中not in的试行效率不高,可以用exists或者not exists,或者其他的.
第二种方法:
显示其他页:升降序中10表示:每页记录数;20表示:[(指定页-1)*每页记录数]
代码
若想对查询加where条件一样的。查询其他页都有一个共同特征:[(指定页-1)*每页记录数],而要判断的CustomerID最好是主键。
总结:*可以替换你要查询的字段;表名可以传不同表;其他页判断最好是以主键列如:CustomerID--加上特征[(指定页-1)*每页记录数];以主键列判断升降序;加上条件查询一样查;定义指定页以及每页记录数,等等其他判断。
随笔中总结的不好或者需要改正,欢迎高手或浏览者提出意见和建议,在此谢谢!
几乎所有的分页存储过程的第一页显示都是一样的。(代码中的表来自:数据库(Northwind))
--显示第一页(后面可以加上排序) SELECT TOP 10 * FROM Customers
第一种方法:
显示其他页:升降序中10表示:每页记录数;30表示:指定页*每页记录数;20表示:[(指定页-1)*每页记录数]
代码
--显示其他页(比如第3页) --升序 SELECT TOP 10 * FROM (SELECT TOP 30 * FROM Customers ORDER BY CustomerID ASC) AS TEMP WHERE CustomerID NOT IN(SELECT TOP 20 CustomerID FROM Customers ORDER BY CustomerID ASC) --降序 SELECT TOP 10 * FROM (SELECT TOP 30 * FROM Customers ORDER BY CustomerID DESC) AS TEMP WHERE CustomerID NOT IN(SELECT TOP 20 CustomerID FROM Customers ORDER BY CustomerID DESC)
其中not in的试行效率不高,可以用exists或者not exists,或者其他的.
第二种方法:
显示其他页:升降序中10表示:每页记录数;20表示:[(指定页-1)*每页记录数]
代码
--显示其他页(比如第3页) --升序 SELECT TOP 10 * FROM Customers WHERE CustomerID>(SELECT MAX(CustomerID) FROM (SELECT TOP 20 CustomerID FROM Customers ORDER BY CustomerID ASC) AS TEMP) ORDER BY CustomerID ASC --降序 SELECT TOP 10 * FROM Customers WHERE CustomerID<(SELECT MIN(CustomerID) FROM (SELECT TOP 20 CustomerID FROM Customers ORDER BY CustomerID DESC) AS TEMP) ORDER BY CustomerID DESC
若想对查询加where条件一样的。查询其他页都有一个共同特征:[(指定页-1)*每页记录数],而要判断的CustomerID最好是主键。
总结:*可以替换你要查询的字段;表名可以传不同表;其他页判断最好是以主键列如:CustomerID--加上特征[(指定页-1)*每页记录数];以主键列判断升降序;加上条件查询一样查;定义指定页以及每页记录数,等等其他判断。
相关文章推荐
- 简单分页存储过程
- 简单分页存储过程
- 一个简单的SQl存储过程分页
- SQL 简单的存储过程分页 改写方法
- 一个简单的oracle分页存储过程的实现和调用
- 一个简单的存储过程数据分页
- 简单谈基于SQL SERVER 分页存储过程的演进
- 存储过程02-简单通用分页
- 简单谈基于SQL SERVER 分页存储过程的演进
- 简单的分页存储过程!
- asp.net 安全、实用、简单的大容量存储过程分页第1/2页
- 简单谈基于SQL SERVER 分页存储过程的演进
- 简单搞一下 Oracle 存储过程动态SQL之获取查询分页!
- (转)常见存储过程分页PK赛——简单测试分析常见存储过程分页速度
- asp.net安全、实用、简单的大容量存储过程分页第1/2页
- 简单谈基于SQL SERVER 分页存储过程的演进
- 存储过程分页 简单列子
- 【老码农怀旧】一个简单好用的分页存储过程
- 简单谈基于SQL SERVER 分页存储过程的演进
- php入门学习知识点二 PHP简单的分页过程与原理