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,写的很简单,主要也是为自己积累哈小经验。。让大家见笑了。。
借此机会祝大家万圣节快乐哟。。。