记录一个古老的Sql分页过程
/*
根据单位ID获取排班信息
For:WXX
TIme:2017-11-22
*/
ALTER proc [dbo].[proc_ScheduleInfo]
@companyID nvarchar(20)='', --单位ID
@classLineId nvarchar(20)='', --线路ID
@vehicleId nvarchar(20)='', --车辆ID
@goTime nvarchar(30) ='', --发车日期
@pageIndex int=1, --当前页
@pageSize int=1000, --页容量
@numsCount int=0 output, --总条数
@pageCount int=0 output --总页数 As --declare @dateNow nvarchar(20) --当前日期
--DECLARE @sql varchar(max) --查询sql
--DECLARE @sqlCount varchar(max) --查询countsql
--DECLARE @top int
declare @countSql nvarchar(max) --总条数SQL
declare @infoSql nvarchar(max) --数据SQL
declare @pageSql nvarchar(max) --分页SQL
declare @whereSql nvarchar(max) --条件SQL
declare @execSql nvarchar(max) --总条数执行SQL
declare @couns nvarchar(max) set @whereSql = ' 1=1 ' if(@companyID is not null and @companyID <>'')
set @whereSql = @whereSql+' and companyID= '''+@companyID+''' '
if(@classLineId is not null and @classLineId <>'')
set @whereSql = @whereSql+' and classLineId = '+@classLineId+' '
if(@vehicleId is not null and @vehicleId <>'')
set @whereSql = @whereSql+' and vehicleId = '+@vehicleId+' '
if(@goTime is not null and @goTime <>'')
set @whereSql = @whereSql+' and date like '''+@goTime+'%'' ' --查询总条数sql
set @countSql = 'select @count=COUNT(1) from ( select s.*, d.remark as dr from
(
select * from Schedule where '+@whereSql+'
) as s
join Company as d on s.companyID = d.cNo
) as b ' --查询数据sql
set @infoSql = 'SELECT Top ('+CONVERT(nvarchar(10),@pageSize)+') * from (
select row_number()over(order by date)rownumber,* from
(
select s.*, d.remark as dr from
(
select * from Schedule where '+@whereSql+'
) as s
join Company as d on s.companyID = d.cNo
) as b ' set @pageSql = ' ) as T
Where rownumber >= ('+CONVERT(nvarchar(10),@pageIndex)+'-1) * ('+CONVERT(nvarchar(10),@pageSize)+')+1 Order By rownumber' --总页数 set @execSql = @countSql
--select(@execSql) for xml path('')
exec sp_executesql @execSql, N'@count int out', @couns out
set @numsCount = @couns --分页查询
--select(@infoSql+@whereSql+@pageSql) for xml path('')
exec(@infoSql+@pageSql) --分页算法
SET @pageCount = @numsCount % @pageSize;
if (@pageCount =0)
begin
set @pageCount = @numsCount / @pageSize ;
end
else if(@numsCount<@pageSize)
begin
set @pageCount=1;
end
else
begin
set @pageCount = @numsCount / @pageSize + 1;
end
if (@pageIndex>@PageCount)
begin
set @pageIndex = @pageCount;
end
好记性不如云存储。
记录一个古老的Sql分页过程的更多相关文章
- [oracle]pl/sql --分页过程demo
这句sql能够用来查询一张表中的特定位置的记录 --查询的方法获取分页的语句 select *from (select t1.*,rownum rn from (select *from books) ...
- 记录一个前端bug的解决过程
人在江湖飘,哪能不挨刀. 我挨了重重一bug.严格来讲这可能是我职业生涯以来的首个悲惨经历,因为凭我的知识储备和经验,基本上任何可重现的bug都是可解的.然而这个bug却困扰了我三个月之久,它具有以下 ...
- Oracle基础(五)pl/sql进阶(分页过程)
编写分页过程 通过pl/sql实现分页过程,再该过程中由简单到难一步步深入,目的在于通过该案例熟悉pl/sql的各种存储过程,包,游标.怎样在java中调用等内容的学习. 1.无返回值 ...
- RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->新增记录SQL执行过程
有时我们需要记录整个系统运行的SQL以作分析,特别是在上线前这对我们做内部测试也非常有帮助,当然记录SQL的方法有很多,也可以使用三方的组件.3.2版本我们在框架底层新增了记录框架运行的所有SQl过程 ...
- 一个PHP的SQL注入完整过程
本篇文章介绍的内容是一个PHP的SQL注入完整过程,现在分享给大家,有需要的朋友可以参考一下 希望帮助到大家,很多PHPer在进阶的时候总会遇到一些问题和瓶颈,业务代码写多了没有方向感,不知道该从那里 ...
- oracle顺序控制语句goto、null和分页过程中输入输出存储、java程序的调用过程
顺序控制语句1 goto建议不要使用 declare i number:=; begin loop dbms_output.put_line(i); then goto end_loop; end i ...
- oracle15 pl/sql 分页
PL/SQL分页 编写分页过程 无返回值的存储过程 古人云:欲速则不达,为了让大家伙比较容易接受分页过程编写,我还是从简单到复杂,循序渐进的给大家讲解.首先是掌握最简单的存储过程,无返回值的存储过程: ...
- [转]关于SQL分页存储过程的分析
[转]关于SQL分页存储过程的分析 建立一个 Web 应用,分页浏览功能必不可少.这个问题是数据库处理中十分常见的问题.经典的数据分页方法是:ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用 ...
- 二十六、oracle pl/sql 分页
一.无返回值的存储过程 古人云:欲速则不达,为了让大家伙比较容易接受分页过程编写,我还是从简单到复杂,循序渐进的给大家讲解.首先是掌握最简单的存储过程,无返回值的存储过程. 案例:现有一张表book, ...
随机推荐
- MyEclipse完善提示配置
MyEclipse完善提示配置 一般的,MyEclipse中的提示以"."后进行提示,不是很完善.现在,修改提示配置,让提示更完善! 具体操作如下: 1.打开MyEclipse,单 ...
- 用vlc搭建简单流媒体服务器(UDP和TCP方式)
.UDP(legacy)传统模式 .RTP方式 .RTSP方式 RTSP方式是通过RTP进行流媒体数据的传输的,VLC的实现也是基于UDP的.这种方式网上的参考资料比较多,我就不截图了,直接叙述命令行 ...
- pat1041-1050
没想到半天就做完了10题 = =,这几题太简单了,基本10分钟一题 1041 #include<cmath> #include<map> #include<iostrea ...
- doT.js模板引擎及基础原理
时至今日,基于后端JavaScript(Node.js)和MVC思想也开始流行起来.模板引擎是数据和页面分离工作中最重要的一环,在各大门户网站均有利用到模板引擎. 模板引擎有很多种,但是原理了解也是非 ...
- PC响应式、固宽布局思想
截止目前,国内绝大多数内容为主的网站(知乎,果壳,V2EX,网易新闻等)均使用内容区定宽布局,大多数电商网站(网易考拉,京东,聚美优品)也使用了内容区定宽的布局,也有些网站使用了自适应布局. 如果不明 ...
- Python 环境的搭建
Python最新源码,二进制文档,新闻资讯等可以在Python的官网查看到: Python官网:http://www.python.org/ 你可以在以下链接中下载 Python 的文档,你可以下载 ...
- 【BZOJ2693】jzptab(莫比乌斯反演)
[BZOJ2693]jzptab(莫比乌斯反演) 题面 讨厌权限题,只能跑到别的OJ上交 和这题是一样的 多组数据 求\[\sum_{i=1}^n\sum_{j=1}^mlcm(i,j)\] 题解 前 ...
- datatable 分页实例
1.使用datatable前台分页,需要后台返回全部数据,返回lisit 2.如果是后台分页 则后台需要获取分页参数,页面中要加 "searchable":true, " ...
- SQL基础教程读书笔记-3
5 复杂查询 5.1 视图 1.表和视图的区别表:保存的是实际的数据视图:保存的是SELECT语句.从视图读取数据时,视图会在内部执行该SELECT语句并创建出一张临时表. 2.视图的优点① 无需保存 ...
- Rotation Proposals
Rotation Proposals 论文Arbitrary-Oriented Scene Text Detection via Rotation Proposals 这篇论文提出了一个基于Faste ...