SQl分页语句分析

一:今天遇到一个分页的问题,光理解就花了一个上午

第一种方法:

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

posted @ 2015-12-09 20:04  ladywang  阅读(135)  评论(0)    收藏  举报