DECLARE @pagenum AS INT, @pagesize AS INT CSDN上还有个存储过程实现分页的代码: ALTER PROCEDURE news_Showlist ) if @Sort = desc
SET @pagenum = 2
SET @pagesize = 3
SELECT *
FROM (SELECT ROW_NUMBER() OVER(ORDER BY newsid DESC) AS rownum,
newsid, topic, ntime, hits
FROM news) AS D
WHERE rownum BETWEEN (@pagenum-1)*@pagesize+1 AND @pagenum*@pagesize
ORDER BY newsid DESC
aspx里面只需给SQL传入pageid和条数即可。
(
@tblName varchar(255), — 表名
@strGetFields varchar(1000), — 需要返回的列
@fldName varchar(255), — 排序的字段名
@PageSize int , — 页尺寸
@PageIndex int , — 页码
@strWhere varchar(1500), — 查询条件(注意: 不要加where)
@Sort varchar(255) –排序的方法
AS
declare @strSQL varchar(5000) — 主语句
declare @strTmp varchar(110) — 临时变量
declare @strOrder varchar(400) — 排序类型
begin
set @strTmp = <(select min
set @strOrder = order by + @fldName + desc
–如果@OrderType不是,就执行降序,这句很重要!
end
else
begin
set @strTmp = >(select max
set @strOrder = order by + @fldName + asc
end
if @PageIndex = 1
begin
if @strWhere !=
begin
set @strSQL = select top + str(@PageSize) + +@strGetFields+ from + @tblName + where + @strWhere + + @strOrder
end
else
begin
set @strSQL = select top + str(@PageSize) + +@strGetFields+ from + @tblName + + @strOrder
end
–如果是第一页就执行以上代码,这样会加快执行速度
end
else
begin
–以下代码赋予了@strSQL以真正执行的SQL代码
set @strSQL = select top + str(@PageSize) + +@strGetFields+ from
+ @tblName + where + @fldName + + @strTmp + (+ @fldName + ) from (select top + str((@PageIndex-1)*@PageSize) + + @fldName + from + @tblName + + @strOrder + ) as tblTmp)+ @strOrder
if @strWhere !=
set @strSQL = select top + str(@PageSize) + +@strGetFields+ from
+ @tblName + where + @fldName + + @strTmp + (
+ @fldName + ) from (select top + str((@PageIndex-1)*@PageSize) +
+ @fldName + from + @tblName + where + @strWhere +
+ @strOrder + ) as tblTmp) and + @strWhere + + @strOrder
end
exec (@strSQL)
RETURN
用sql 2005的row_number() 实现分页功能_数据库技巧
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » 用sql 2005的row_number() 实现分页功能_数据库技巧
相关推荐
-      sql语句中的判断功能的使用方法
-      sql语句中的判断功能的使用方法
-      SQL语言中去掉小数点有效数字后面的所有0
-      ASP连接各种数据库的代码
-      在sql语句中实现md5功能
-      给access数据库减肥
-      asp连接access数据库代码(2)
-      更改 SQL Server 登录模式