SQL笔记---分页
随用随想,随用随记。
通过实际应用掌握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
最新文章
- Nginx 颁发自签证书
- 20151207Study
- HTML之:fieldset——一个不常用的HTML标签
- java多线程之CAS
- 【转】关于.net framework4.0以及4.5安装失败,“安装时发生严重错误”……
- IOS开发涉及有点概念&;相关知识点
- vsftpd搭建及配置参数
- HDU 5700 区间交 线段树暴力
- MVC的Model层中的一些便签
- 连接到sql server 2008 TCP、IP出错
- 团队作业4——第一次项目冲刺(Alpha版本)6th day
- ReactNative布局样式总结
- HDU 3944 DP? [Lucas定理 诡异的预处理]
- 【一天一道LeetCode】#39. Combination Sum
- 和菜鸟一起学产品之用户体验设计UED
- 爬取页面InsecureRequestWarning: 警告解决笔记
- Webapi--Webapi 跨域链接
- Codeforces 919D Substring 【拓扑排序】+【DP】
- 全志A33 lichee 搭建Qt App开发环境编写helloworld
- 2018.11.05 bzoj2143: 飞飞侠(最短路)