ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 基于ROWCOUNT的分页存储过程

基于ROWCOUNT的分页存储过程

原创 Linux操作系统 作者:iSQlServer 时间:2009-11-06 10:02:23 0 删除 编辑

sql分页这是个老话题了,google能一大把,有基于int 型id的嵌套分页, 也有掐头去尾的分页方式,但这两种都需要用TOP。我们都知道,在top后面用变量不是说说的事,也不好整,再说了不是所有的表id都是int行啊。所有今天自己也整了个,大家有兴趣推荐去看看动易的通用分页存储过程。

DECLARE @tmpid varchar(50)

declare @rownum int
declare @pagesize int
declare @page int
SET @pagesize =5
SET @page = 1

IF @page >1
BEGIN
 SET @rownum = @pagesize * (@page-1)
 SET ROWCOUNT @rownum
END
 IF @page >1
   BEGIN
    SELECT @tmpid =[or_OrderID] FROM [wos_tbOrder]    ORDER BY [or_OrderID] ASC
    SET ROWCOUNT @pagesize
    SELECT
          [or_OrderID]
          ,[or_CSTNO]
          ,[or_CSTName]
          ,[or_ConsignNo]
          ,[or_TaxID]
          ,[or_BuildMan]
          ,[or_Status]
      FROM [wos_tbOrder]
   WHERE [or_OrderID] > @tmpid ORDER BY [or_OrderID] ASC
  END
ELSE
   BEGIN
    SET ROWCOUNT @pagesize
        SELECT
              [or_OrderID]
              ,[or_CSTNO]
              ,[or_CSTName]
              ,[or_ConsignNo]
              ,[or_TaxID]
              ,[or_BuildMan]
              ,[or_Status]
          FROM [wos_tbOrder] ORDER BY [or_OrderID] ASC
     END

原文地址:http://www.cnblogs.com/leeyun/archive/2009/11/05/1596744.html

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16436858/viewspace-618260/,如需转载,请注明出处,否则将追究法律责任。

上一篇: COALESCE的妙用
请登录后发表评论 登录
全部评论

注册时间:2008-10-17

  • 博文量
    1319
  • 访问量
    2084386