一:今天遇到一个分页的问题,光理解就花了一个上午
第一种方法:
select top pagesize * --分页大小(每页有多少条数据)
from
(
select row_number() over (order by 某字段 asc) as RowNumber,* from 表名
)as temp --临时变量
where RowNumber > pagesize*(pages-1) --(pages-1)等价于跳过多少页
注意:row_number() 是sql2005中增添的一个函数,用于表示行号,和over搭配使用,over后面指定
按照哪个字段升序或降序排列
第二种方法:
执行存储过程
USE [student]
GO
DECLARE @return_value int --声明返回值变量
EXEC @return_value = [dbo].[pGO_GetRecordFromPage] --返回值等于存储过程返回结果
@tblName = N'T_StuInfo', --指定表名
@fldName = N'stuid', --指定排序的字段
@PageSize = 4, --分页大小
@PageIndex = 2, --页码
@IsCount =0, --是否返回记录总数,当指定1时返回满足strWhere条件的记录总数
@OrderType = 0, --排序类型0升1降序
@strWhere =" " --where条件,不用写where
SELECT 'Return Value' = @return_value
GO