SQL2005的ROW_NUMBER()實現分頁功能
DECLARE @pagenum AS INT, @pagesize AS INTSET @pagenum = 2SET @pagesize = 3SELECT *FROM (SELECT ROW_NUMBER() OVER(ORDER BY newsid DESC) AS rownum, newsid, topic, ntime, hits FROM news) AS DWHERE rownum BETWEEN (@pagenum-1)*@pagesize+1 AND @pagenum*@pagesizeORDER BY newsid DESC |
aspx里面只需給SQL傳入pageid和條數即可。
CSDN上還有個存儲過程實現分頁的代碼:
ALTER PROCEDURE news_Showlist(@tblName varchar(255), -- 表名@strGetFields varchar(1000), -- 需要返回的列@fldName varchar(255), -- 排序的字段名@PageSize int , -- 頁尺寸@PageIndex int , -- 頁碼@strWhere varchar(1500), -- 查詢條件(注意: 不要加where)@Sort varchar(255) --排序的方法)ASdeclare @strSQL varchar(5000) -- 主語句declare @strTmp varchar(110) -- 臨時變量declare @strOrder varchar(400) -- 排序類型if @Sort = 'desc'beginset @strTmp = '<(select min'set @strOrder = ' order by ' + @fldName +' desc'--如果@OrderType不是,就執行降序,這句很重要!endelsebeginset @strTmp = '>(select max'set @strOrder = ' order by ' + @fldName +' asc'end if @PageIndex = 1beginif @strWhere != '' beginset @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from ' + @tblName + ' where ' + @strWhere + ' ' + @strOrder endelse beginset @strSQL = 'select top ' + str(@PageSize) +' '+@strGetFields+ ' from '+ @tblName + ' '+ @strOrder end--如果是第一頁就執行以上代碼,這樣會加快執行速度endelsebegin--以下代碼賦予了@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 + ' ' + @strOrderendexec (@strSQL)RETURN |
(T114)
作者:http://www.zhujiangroad.com
來源:http://www.zhujiangroad.com
※以上資訊由網路資料整理而成,若有遺誤概以來源為準,本站不負任何相關責任。
※如果您認為網站上資訊侵犯了您的版權,請告訴我們
按這裡,我們將即時將您的版權資料移除。