Sql 语句拼接 多条件分页查询
Create PROCEDURE [dbo].[Proc_B2B_GetBatchMainPaging]
@StationNo AS varchar() , --m
@StationName AS varchar() , --m
@PartNo AS varchar() , -- son
@PartName AS varchar() , --son
@IsOldPart AS varchar() , --m
@IsRebate AS varchar() , --m
@IsTransport AS varchar() , --m
@startApplyTime AS varchar() , --m
@endApplyTime AS varchar() , --m
@startExpectDate AS varchar(), --m
@endExpectDate AS varchar() , --m
@page AS int , --
@size AS int --
-- B2B_BatchPartMain as m
-- B2B_BatchApprovalDetail as D
-- B2B_BatchSendPartInfo as s
-- B2B_BatchPartsInfo as son
AS
BEGIN CREATE TABLE #ReturnTable (
[PartNo] varchar() NULL , -- son
[PartName] varchar() NULL , -- son
[Counts] DECIMAL(,) NULL , -- son
[ApplyPrice] [decimal](, ) NULL, -- son
[ApprovalPrice] [decimal](, ) NULL, -- son
[IsOldPart] [varchar]() NULL, --m
[StationNo] [varchar]() NOT NULL, --m
[StationName][varchar]() NOT NULL, --m
[ExpectDate] [datetime] NULL, --m
[OrderStatus] [varchar]() NULL, --m
[ApplyTime] [datetime] NULL, --m
[CurrnetApprover] [varchar]() NULL, --D
[ApprovalTime] [datetime] NULL, --D
[Supply] [varchar]() NULL --s
); CREATE TABLE #ReturnData (
[PageIndex] varchar() NULL ,
[PageSize] varchar() NULL ,
[totalNumber] varchar() NULL ,
[PageCount] varchar() NULL ,
); DECLARE @strSql varchar(MAX);
--拼接Sql语句
set @strSql='
select
son.PartNo,
son.PartName,
son.Counts,
son.ApplyPrice,
son.ApprovalPrice,
m.IsOldPart,
m.StationNo,
m.StationName,
m.ExpectDate,
m.OrderStatus,
ApplyTime,
D.CurrnetApprover,
d.ApprovalTime,
s.Supply from B2B_BatchPartMain as m
JOIN B2B_BatchPartsInfo as son ON m.BOrderNo=son.BOrderNo
JOIN B2B_BatchApprovalDetail as D ON m.BOrderNo=D.BOrderNo
JOIN B2B_BatchSendPartInfo AS S ON m.BOrderNo=S.BOrderNo
where ='
set @strSql= @strSql + ' AND convert(varchar(100), m.ApplyTime,21)>= ''' + convert(varchar(), @startApplyTime,) + ''' '
set @strSql= @strSql + ' AND convert(varchar(100), m.ApplyTime,21)<= ''' + convert(varchar(), @endApplyTime,) + ''' '
set @strSql= @strSql + ' AND convert(varchar(100), m.ExpectDate,21)>= ''' +convert(varchar(), @startExpectDate,) + ''' '
set @strSql= @strSql + ' AND convert(varchar(100), m.ExpectDate,21)<= ''' +convert(varchar(), @endExpectDate,) + ''' ' if( @StationNo is not null)
begin
set @strSql= @strSql + ' and m.StationNo =''' + @StationNo+'''' ;
end
--判断拼接Sql语句
if( @StationName is not null) and (@StationName!='')
begin
set @strSql= @strSql + ' and m.StationName =''' + @StationName+'''' ;
end
if( @PartNo is not null)and (@PartNo!='')
begin
set @strSql= @strSql + ' and son.PartNo =''' + @PartNo+'''' ;
end
if( @PartName is not null)and (@PartName!='')
begin
set @strSql= @strSql + ' and son.PartName =''' + @PartName+'''' ;
end
if( @IsOldPart is not null)and (@IsOldPart!='')
begin
set @strSql= @strSql + ' and m.IsOldPart =''' + @IsOldPart+'''' ;
end
if( @IsRebate is not null)and (@IsRebate!='')
begin
set @strSql= @strSql + ' and m.IsRebate =''' + @IsRebate+'''' ;
end
if( @IsTransport is not null)and (@IsTransport!='')
begin
set @strSql= @strSql + ' and m.IsTransport =''' + @IsTransport+'''' ;
end
--插入数据到临时表
insert INTO #ReturnTable exec(@strSql) ;
--总数量
DECLARE @totalNumber as INT ;
select @totalNumber=COUNT(PartNo) from #ReturnTable;
-- 总页数
DECLARE @PageCount as INT ;
SET @PageCount= Ceiling(@totalNumber*1.0/@size);
--插入返回信息
INSERT into #ReturnData VALUES(@page,@size,@totalNumber,@PageCount)
--分页查询数据
select * from (select ROW_NUMBER() over(order by PartNo asc) as rowNumber , * from #ReturnTable) as temp where rowNumber between (((@page-)*@size)+) and (@page*@size)
select * from #ReturnData; --删除临时表
drop table #ReturnTable
Sql 语句拼接 多条件分页查询的更多相关文章
- ASPNETCOREAPI 跨域处理 SQL 语句拼接 多条件分页查询 ASPNET CORE 核心 通过依赖注入(注入服务)
ASPNETCOREAPI 跨域处理 AspNetCoreApi 跨域处理 如果咱们有处理过MV5 跨域问题这个问题也不大. (1)为什么会出现跨域问题: 浏览器安全限制了前端脚本跨站点的访问资源, ...
- 查询拼接SQL语句,多条件模糊查询
多条件查询,使用StringBuilder拼接SQL语句,效果如下: 当点击按钮时代码如下: private void button1_Click(object sender, EventArgs e ...
- SQL语句(六)分页查询和联合查询
目录 一.分页查询 语法格式 应用 二.联合查询 语法和作用 特点 应用 UNION和UNION ALL的区别 一.分页查询 语法格式 SELECT 查询列表 FROM 表 WHERE ... GRO ...
- sql查询语句如何解析成分页查询?
我们公司主要mysql存储数据,因此也封装了比较好用mysql通用方法,然后,我们做大量接口,在处理分页查询接口,没有很好分查询方法.sql查询 语句如何解析成“分页查询”和“总统计”两条语句.可能, ...
- 六、SQL语句进行多条件查询,并解决参数为空的情况
一.SQL语句进行多条件查询,并解决参数为空的情况 QueryEntity query; var whereSql = new StringBuilder("Where 1=1") ...
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- Java web实现综合查询+SQL语句拼接
首先展示图形界: 界面比较简单,但麻雀虽小五脏俱全.因为数据库只有六种数据类型,所以最多添加六个查询框. 测试以下问题: 删除方式是从上往下开始的,如果删除之后会有问题.(后续改进ing) 若干个并且 ...
- 判断合同金额是否可以转整形和sql语句中添加条件语句
主要用到sqlserver语句中的判断语法 if (min_hetonge.Length > 0 && int.TryParse(min_hetonge, out min)) s ...
- asp.net mvc多条件+分页查询解决方案
开发环境vs2010 css:bootstrap js:jquery bootstrap paginator 原先只是想做个mvc的分页,但是一般的数据展现都需要检索条件,而且是多个条件,所以就变成了 ...
随机推荐
- vue相关文件说明(基于vue2.0)
1.config:生产,开发环境配置参数 2.static:第三方资源,这里面的文件直接写路径,不能用'import'导入 3.node_modules:引入一些依赖包 4..babelrc:定义了E ...
- Touch事件在移动端web开发中的详解
一.pc端事件回顾 HTML事件.DOM0事件.DOM2事件 事件对象. 如果上述概念不清楚,请先去了解. 二.移动端事件简介 2.1 pc端事件在移动端的问题 移动设备主要特点是不配备鼠标,键盘 ...
- vue项目实践-添加express-mockjs进行数据模拟
mock-server 在新项目开始的时候,后端框架还没有,前端就有能够自己操作的模拟数据的服务是可以有的 express-mockjs 是楼教主结合 express+mock-lite 造的一个轮子 ...
- 深入理解Spring Redis的使用 (五)、常见问题汇总
目前我所知道的Redistemplate里面,我没有使用到的就是管道.这个可以进行批量的读写.类似于jdbc的batch.还有就是Redis的集群部署.但是由于我业务里没有这种需求,所以没有使用无法给 ...
- Android OpenGL ES 开发(四): OpenGL ES 绘制形状
在上文中,我们使用OpenGL定义了能够被绘制出来的形状了,现在我们想绘制出来它们.使用OpenGLES 2.0来绘制形状会比你想象的需要更多的代码.因为OpenGL的API提供了大量的对渲染管线的控 ...
- [Swift]LeetCode73. 矩阵置零 | Set Matrix Zeroes
Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in-place. Exampl ...
- [Swift]LeetCode122. 买卖股票的最佳时机 II | Best Time to Buy and Sell Stock II
Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...
- [Swift]LeetCode132. 分割回文串 II | Palindrome Partitioning II
Given a string s, partition s such that every substring of the partition is a palindrome. Return the ...
- [Swift]LeetCode543. 二叉树的直径 | Diameter of Binary Tree
Given a binary tree, you need to compute the length of the diameter of the tree. The diameter of a b ...
- Hystrix概念设计
1. Hystrix概念设计 1.1. 大纲 1.2. 基本的容错模式 1.3. 断路器模式 1.4. 舱壁隔离模式 1.5. 容错理念 凡事依赖都可能失败 凡事资源都有限制 网络并不可靠 延迟是应用 ...