一个很基本的分页Procedure echo

很基本很基本很基本很基本很基本很基本很基本很基本,没办法!

Code:

 1 /*
 2 
 3 假设500行数据,分页,每页10行,可分为50页。
 4 
 5 设计procedure实现该需求
 6 
 7 
 8     传入三个参数, 一个每页显示的条数pageSize;一个是当前页pageCount;
 9     
10     @pageSize;每页显示的条数 = 10
11     
12     @pageCount;当前页 = 2
13     
14     
15     2*10 = 20 
16     
17     10 +1 = 11;
18     
19     11 ~ 20
20     
21     ((2-1)*10 + 1)  ~  2*10
22     
23     ((pageCount-1)*pageSize+1) ~  pageCount*pageSize
24     
25     where condtion between ((pageCount-1)*pageSize+1) and pageCount*pageSize
26 */
27 
28 create procedure PaginationDate
29 
30     @pageSize int, --每页显示的条数
31     
32     @pageCount int --当前页
33     
34 as
35 
36     
37     SELECT 
38            id =IDENTITY(int,1,1), --为数据集指定行自增列,从1开始
39            t.name,
40            t.price
41     
42         INTO #tempTable --将本次查询的结果集翻入临时表中
43       
44         FROM table1 t
45             WHERE t.price >100
46       
47   
48     SELECT *
49         FROM #tempTable --从临时表中筛选
50         WHERE id Between ((pageCount-1)*pageSize+1) and (pageCount*pageSize)

                  --用上面推出的算法公式来计算本次查询该返回哪些数据行,通过id的范围来筛选 51 --between ((pageCount-1)*pageSize+1) and pageCount*pageSize 52 53 54 DROP TABLE #tempTable --完成后删除临时表 55 56 RETURN 0 57 58 GO
原文地址:https://www.cnblogs.com/mangonic/p/2515405.html