很基本很基本很基本很基本很基本很基本很基本很基本,没办法!
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