码迷,mamicode.com
首页 > 数据库 > 详细

SQL笔记---分页

时间:2014-07-02 21:47:36      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:http   os   art   应用   sql   app   

随用随想,随用随记。

通过实际应用掌握SQL语句。

一. SQL分页

1. 第一种方法:利用ID大于多少进行筛选

SELECT TOP 20
        *
FROM    dbo.WMS_Stock
WHERE   ( Rk_SkuCode > ( SELECT MAX(Rk_SkuCode)
                         FROM   ( SELECT TOP 40
                                            *
                                  FROM      dbo.WMS_Stock
                                  ORDER BY  Rk_SkuCode
                                ) t
                       ) )
ORDER BY dbo.WMS_Stock.Rk_SkuCode

注释:ID大于前40个中最大的一个,即排序后的41位。

 

2. 第二种方法:利用Not In,排除掉某些有序的ID

SELECT TOP 20
        *
FROM    dbo.WMS_Stock
WHERE   ( Pk_StockId NOT IN ( SELECT TOP 40
                                        Pk_StockId
                              FROM      dbo.WMS_Stock
                              ORDER BY  Pk_StockId ) )
ORDER BY dbo.WMS_Stock.Pk_StockId

注释:这种方法是根据排序的先后顺序进行检索,即不在前40行紧挨着之后的20行。

 

3. 第三种方法:利用存储过程及游标

create  procedure SqlPager
@sqlstr nvarchar(4000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数
as
set nocount on
declare @P1 int, --P1是游标的id
 @rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1, @rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页 
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize 
exec sp_cursorclose @P1
set nocount off

 

参考引用:

http://www.itlearner.com/article/3740

 

SQL笔记---分页,布布扣,bubuko.com

SQL笔记---分页

标签:http   os   art   应用   sql   app   

原文地址:http://www.cnblogs.com/cuiyansong/p/3819007.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!