Sql Server 数据分页

  Sql Server 数据分页

 

在列表查询时由于数据量非常多,一次性查出来会非常慢,就算一次查出来了,也不能一次性显示给客户端,所以要把数据进行分批查询出来,每页显示一定量的数据,这就是数据要分页。

我们经常会碰到要取n到m条记录,就是有分页思想,罗列一下一般的方法请参看

http://www.cnblogs.com/qqlin/archive/2012/11/01/2745161.html

我在此想再介绍一中分页方法。也蛮简单,可以自己设置每页显示的条数和显示第几页。

下面先建立一张学生表[StudentTable]

 

创建学生信息表
create table StudentTable
(
Stu_No nvarchar(8)  PRIMARY KEY  NOT NULL,
Stu_Name nvarchar(14) UNIQUE NOT NULL,
Stu_Sex nvarchar(14),
Stu_Birthday date,
Stu_Address nvarchar(100)
)
GO

 

然后插入数据:

 

插入数据
INSERT INTO [StudentTable]([Stu_No],[Stu_Name],[Stu_Sex],[Stu_Birthday],[Stu_Address])
select '20120001','李雷','','1987-11-21','重庆市渝中区' union all
select '20120002','韩梅梅','','1987-2-16','重庆市沙坪坝区' union all
select '20120003','梁楠昆','','1987-1-14','重庆市渝中区' union all
select '20120004','朱昌妍','','1990-11-13','重庆市渝北区' union all
select '20120005','赵楠西','','1988-2-22','重庆市沙坪坝区' union all
select '20120006','王慧鑫','','1991-3-26','重庆市渝中区' union all
select '20120007','叶丽靖','','1989-4-23','重庆市南岸区' union all
select '20120008','袁巍','','1988-5-26','重庆市南岸区' union all
select '20120009','刘志成','','1989-6-14','重庆市渝中区' union all
select '20120010','李晓琪','','1989-7-26','重庆市渝中区' union all
select '20120011','宫兆钰','','1989-8-15','重庆市南岸区' union all
select '20120012','初嘉靖','','1988-9-26','重庆市沙坪坝区' union all
select '20120013','林玥','','1987-5-26','重庆市九龙坡区' union all
select '20120014','刘宗晨','','1988-6-5','重庆市渝中区' union all
select '20120015','王格格','','1987-11-15','重庆市九龙坡区' union all
select '20120016','张秉元','','1988-10-11','重庆市渝中区' union all
select '20120017','吴彤','','1990-5-26','重庆市渝中区' union all
select '20120018','陈润章','','1990-9-17','重庆市九龙坡区' union all
select '20120019','闫申悦','','1989-5-16','重庆市巴南区' union all
select '20120020','马媛媛','','1988-4-9','重庆市沙坪坝区' 
GO

 

下面就是分页的SQL脚本了。

数据分页
declare @pagesize int,@pageNum int 
set @pagesize=5
set @pageNum=3
select * from(
 (select row_number() over(order by [Stu_No]) RowNum,[Stu_No],[Stu_Name],[Stu_Sex],[Stu_Birthday],[Stu_Address]  from StudentTable )
 )tb
where RowNum>@pagesize*(@pageNum-1) and RowNum<=@pagesize*(@pageNum) order by [Stu_No] 

该脚本查询出来的就是 StudentTable 表每页显示的5条数据和显示第3页数据

 

很简单吧。。

OK,写的很简单,主要也是为自己积累哈小经验。。让大家见笑了。。

借此机会祝大家万圣节快乐哟。。。

posted @ 2012-11-01 16:11  武穆逸仙  阅读(210)  评论(0编辑  收藏  举报

为天地立心 为生民立命 为往圣继绝学 为万世开太平