小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

SQL分頁語句 ( 轉(zhuǎn)自牛腩老師的博客 )

 昵稱10504424 2013-02-19
sql server2000方法:

 

 

Sql代碼 復(fù)制代碼 收藏代碼
  1. select top 每頁顯示的記錄數(shù) * from topic where id not in  
  2.  (select top (當(dāng)前的頁數(shù)-1)×每頁顯示的記錄數(shù) id from topic order by id desc)   
  3.  order by id desc  

    需要注意的是在access中不能是top 0,所以如果數(shù)據(jù)只有一頁的話就得做判斷了。。

 

②sql server2005中的分頁代碼:

 

 

Sql代碼 復(fù)制代碼 收藏代碼
  1. with temptbl as (   
  2.   SELECT ROW_NUMBER() OVER (ORDER BY id desc)AS Row,    
  3.   ...   
  4. )   
  5. SELECT * FROM temptbl where Row between @startIndex and @endIndex  

 該方法說明:創(chuàng)建一個臨時表,表中加一列元素ROW,然后按照ROW的大小取出相應(yīng)的頁的數(shù)據(jù)(主要用于web開發(fā)分頁管理)

   實例:

 

Sql代碼 復(fù)制代碼 收藏代碼
  1. with temptbl as (   
  2.   SELECT ROW_NUMBER() OVER (ORDER BY id desc)AS 行號,* from news   
  3. )   
  4. SELECT * FROM temptbl where 行號 between 9 and 16  

 

 

 

 

 

補充:

 

11 樓 niunan 2009-07-22   引用

自己在網(wǎng)上找了一下。。發(fā)現(xiàn)http://hi.baidu.com/fuhengyu/blog/item/adb30aafe4df88c87cd92ae9.html
有個分頁存儲過程,覺得蠻簡單的,弄下來在自己的機子上測試了一下,發(fā)現(xiàn)出錯,自己更改了一下錯誤,改后的分頁存儲過程如下:

Sql代碼 復(fù)制代碼 收藏代碼
  1. SET ANSI_NULLS ON  
  2. GO   
  3. SET QUOTED_IDENTIFIER ON  
  4. GO   
  5. -- =============================================   
  6. -- Author:      牛腩   
  7. -- Create date: 2009-07-22 12:41   
  8. -- Description: 分頁,用到了ROW_NUMBER()   
  9. -- =============================================   
  10. ALTER PROCEDURE [dbo].[proc_ShowPage]   
  11. @tblName   varchar(255),       -- 表名   
  12. @strGetFields varchar(1000) = '*'-- 需要返回的列,默認*   
  13. @strOrder varchar(255)='',      -- 排序的字段名,必填   
  14. @strOrderType varchar(10)='ASC'-- 排序的方式,默認ASC   
  15. @PageSize   int = 10,          -- 頁尺寸,默認10   
  16. @PageIndex int = 1,           -- 頁碼,默認1   
  17. @strWhere varchar(1500) = '' -- 查詢條件 (注意: 不要加 where)   
  18. AS  
  19.   
  20. declare @strSQL   varchar(5000)   
  21.   
  22. if @strWhere !=''  
  23. set @strWhere=' where '+@strWhere   
  24.   
  25. set @strSQL=   
  26. 'SELECT * FROM ('+   
  27.     'SELECT ROW_NUMBER() OVER (ORDER BY '+@strOrder+' '+@strOrderType+') AS pos,'+@strGetFields+' '+   
  28.     'FROM ['+@tblName+'] '+@strWhere+   
  29. ') AS sp WHERE pos BETWEEN '+str((@PageIndex-1)*@PageSize+1)+' AND '+str(@PageIndex*@PageSize)   
  30.   
  31. exec (@strSQL)   
  32. print @strSQL  -- 測試用,可在查詢的時候看到生成的SQL語句  
 

 

 

 

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多