网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 时尚美容

Sql 数据库分页

时间:2024-10-13 00:10:20

前台缓存分页,如果数据很多的话会变得很慢,而且不方便,所以就在这里把数据库的分页进行集合。

工具/原料

sqlserver2008

分页第一种

1、首先 建一张测试表create database Testgouse Testgocreate Table UserInfo( userid int identity(1,1) primary key, username nvarchar(10) not null)

Sql 数据库分页

3、--查询第三页的数据--数据库模拟前台传过来的参数declare @pagesize int--定义显示条数declare @currentPage int--定义当前页set @pagesize = 3set @currentPage = 3--分页查询语句select top (@pagesize) * from Userinfowhere useridnot in(select top(@pagesize*(@currentPage-1))useridfrom UserInfo)

Sql 数据库分页

4、--第一页:因为不需要对数据过滤,--所以只取PagSize数量的记录--第二页:步骤:--1.取前两页的数据 selct top @pagesize *@currentPage--2.过滤掉第一页的数据@pagesize*(@currentPage-1)

分页第二种

1、--第二种方法:如果ID是连续,完全不用top--直接用id就可以--建表格 数据从UserInfo拿过来create table #tempUserInfo( id int identity(1,1) primary key, userid int not null, username nvarchar(10) not null)--插入数据insert into #tempUserInfoselect * from UserInfo

Sql 数据库分页

分页第三种

1、--第三种--rownumber()函数是sql server2005才有declare @pagesize intdeclare @currentPage intset @pagesize = 3set @currentPage = 3--查询语句select * from (select ROW_NUMBER() over (order by userid) as HangHao,*from UserInfo) pageduserinfowhere HangHao between(@currentPage -1)*@pagesize +1and @pagesize * @currentPage

Sql 数据库分页

2、--效率问题:第一张绝对比第三种低。--理论上第二种效率最高,但不推荐用,--要实现的话,一般是用存储过程个人推荐第三种

© 一点资料