SQL 分页问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 10:16:04
CREATE PROCEDURE p_GetStudentInfo
@PageSize INT, //条数
@PageIndex INT, //页数
@strWhere varchar(1500) -- 查询条件(注意: 不要加where)
As
Begin
select * from (
select row_number() over (order by StudentInfoId) row,* from StudentInfo ) StudentInfo
where row between @PageSize*(@PageIndex-1) and @PageSize*@PageIndex
End
go

select row_number() over (order by StudentInfoId) row,* from StudentInfo ) StudentInfo
where row between @PageSize*(@PageIndex-1) and @PageSize*@PageIndex //这句话解释一下特别是row_number() over

row_number()取得该记录在结果集合中的行数
后面的where row between @PageSize*(@PageIndex-1) and @PageSize*@PageIndex 就是根据行数计算页面的记录所对应的行数范围

到网上看看over()函数怎麼用