用SQL2005的ROW_NUMBER()实现分页功能
来源:互联网 发布:4px递四方 知乎 编辑:程序博客网 时间:2024/05/29 04:38
ECLARE@pagenumASINT,@pagesizeASINT
SET@pagenum=2
SET@pagesize=3
SELECT*
FROM(SELECTROW_NUMBER()OVER(ORDERBYnewsidDESC)ASROWnum,
newsid,topic,ntime,hits
FROMnews)ASD
WHEREROWnumBETWEEN(@pagenum-1)*@pagesize+1AND@pagenum*@pagesize
ORDERBYnewsidDESC
aspx里面只需给SQL传入pageid和条数即可。
CSDN上还有个存储过程实现分页的代码:
ALTERPROCEDUREnews_Showlist
(
@tblName varchar(255), --表名
@strGetFieldsvarchar(1000), --需要返回的列
@fldNamevarchar(255), --排序的字段名
@PageSize int, --页尺寸
@PageIndex int, --页码
@strWhere varchar(1500), --查询条件(注意:不要加where)
@Sortvarchar(255) --排序的方法
)
AS
declare@strSQL varchar(5000) --主语句
declare@strTmp varchar(110) --临时变量
declare@strOrdervarchar(400) --排序类型
if@Sort='desc'
begin
set@strTmp='<(selectmin'
set@strOrder='orderby'+@fldName+'desc'
--如果@OrderType不是,就执行降序,这句很重要!
end
else
begin
set@strTmp='>(selectmax'
set@strOrder='orderby'+@fldName+'asc'
end
if@PageIndex=1
begin
if@strWhere!=''
begin
set@strSQL='selecttop'+str(@PageSize)+''+@strGetFields+' from'+@tblName+'where'+@strWhere+''+@strOrder
end
else
begin
set@strSQL='selecttop'+str(@PageSize)+''+@strGetFields+' from'+@tblName+''+@strOrder
end
--如果是第一页就执行以上代码,这样会加快执行速度
end
else
begin
--以下代码赋予了@strSQL以真正执行的SQL代码
set@strSQL='selecttop'+str(@PageSize)+''+@strGetFields+' from'
+@tblName+'where'+@fldName+''+@strTmp+'('+@fldName+')from(selecttop'+str((@PageIndex-1)*@PageSize)+''+@fldName+'from'+@tblName+''+@strOrder+')astblTmp)'+@strOrder
if@strWhere!=''
set@strSQL='selecttop'+str(@PageSize)+''+@strGetFields+' from'
+@tblName+'where'+@fldName+''+@strTmp+'('
+@fldName+')from(selecttop'+str((@PageIndex-1)*@PageSize)+''
+@fldName+'from'+@tblName+'where'+@strWhere+''
+@strOrder+')astblTmp)and'+@strWhere+''+@strOrder
end
exec(@strSQL)
RETURN
- 用SQL2005的ROW_NUMBER()实现分页功能
- 用SQL 2005的ROW_NUMBER() 实现分页功能
- 用SQL 2005的ROW_NUMBER() 实现分页功能
- SQL 2005的ROW_NUMBER()实现分页功能
- 用ROW_NUMBER() 实现分页功能
- SQL2005新函数ROW_NUMBER()实现分页
- SQL2008或者SQL2005里ROW_NUMBER分页,SQL2000怎么实现等同的效果
- SQL row_number() over实现分页功能
- 运用SQL2005以上特有的ROW_NUMBER() 进行分页
- SQL2005新函数ROW_NUMBER()分页2
- sql2005分页功能
- 使用row_number()实现分页
- ROW_NUMBER()实现分页查询
- Row_Number实现分页
- ROW_NUMBER() 简单的分页
- SQL2005基于ROW_NUMBER() 两种分页性能比
- ORCLE使用ROW_NUMBER()实现分页
- 分页功能的实现
- 触发器介绍
- Fedora core 7(FC7)中成功安装oracle10g(10.2.0.1)
- 不同字符集倒库的方法
- JAVA 2 EXE的几种方法
- 2000中清空LOG文件一法
- 用SQL2005的ROW_NUMBER()实现分页功能
- SQLServer2005-善用OPENROWSET函数来存取大型对象(LOB)
- SQLServer2000在win2003上安装不上,我的解决办法
- SQLServer2005-如何在预存程序中调用另外一个预存程序
- 用过的几个linux distribute版本比较以及常用工具介绍
- 查询表和字段sql语句
- pidgin的安装
- SQLServer应用程序中的高级SQL注入
- xmms安装和中文设置