利用存储过程进行组合查询

/*********************************************************************/

/* proc name : P_am_postjob_search */

/* */

/* Description: 申请单查询 */

/* */

/* parameters: @searchtime 申请时间 */

/* @search_poststatus 发布状态 */

/* @search_applystatus 招聘状态 */

/* @job_name 职位名 */

/* @Re_deptid 申请部门 */

/* date: 2003/11/5 */

/* */

/* author: [email protected] */

/* */

/* history: */

/*********************************************************************/

create proc P_am_postjob_search

(

@searchtime varchar(5),

@search_poststatus char(1),

@search_applystatus char(1),

@job_name varchar(50),

@Re_deptid varchar(20)

)

as

declare @m_strSqlsearchtime varchar(255)

declare @m_strSqlpoststatus varchar(255) --Sql语句的条件部分

declare @m_strSqlapplystatus varchar(255) --Sql语句的条件部分

declare @m_strSqljob_name varchar(255) --Sql语句的条件部分

declare @m_strSqlRe_deptid varchar(255) --Sql语句的条件部分

select @m_strSqlsearchtime= case

when @searchtime=‘0‘ then /*申请时间*/

‘select Re_NO,post_id,job_name,Re_num,Re_deptid,Re_applydate,job_poststatus,job_posttype,job_posttype,job_applystatus from am_postjob where 1=1‘

else

‘select Re_NO,post_id,job_name,Re_num,Re_deptid,Re_applydate,job_poststatus,job_posttype,job_posttype,job_applystatus from am_postjob where ‘+@searchtime+‘>datediff(dd,Re_applydate,getdate())‘

end

select @m_strSqlpoststatus= case

when @search_poststatus<>‘n‘ /*发布状态*/

then ‘ and job_poststatus=‘‘‘+@search_poststatus+‘‘‘‘

else ‘‘

end

select @m_strSqlapplystatus= case

when @search_applystatus<>‘n‘ /*招聘状态*/

then ‘ and job_applystatus=‘‘‘+@search_poststatus+‘‘‘‘

else

‘‘

end

select @m_strSqljob_name= case

when @job_name<>‘‘ /*职位关键字*/

then ‘ and job_name like ‘‘%‘+@job_name+‘%‘‘‘

else

‘‘

end

select @m_strSqlRe_deptid

= case

when @Re_deptid<>‘‘ /*申请部门ID*/

then ‘ and Re_deptid=‘‘‘+@Re_deptid+‘‘‘‘

else

‘‘

end

exec ( @m_strSqlsearchtime + @m_strSqlpoststatus + @m_strSqlapplystatus + @m_strSqljob_name + @m_strSqlRe_deptid +‘order by post_id asc‘)

利用存储过程进行组合查询

时间: 2024-10-11 10:42:56

利用存储过程进行组合查询的相关文章

利用存储过程方便日常查询

            利用存储过程方便日常查询 一.创建存储过程 1.存储过程创建语法: CREATE PROCEDURE sp_name ([ proc_parameter ]) [ characteristics..] routine_body 2.参数详解: sp_name:存储过程名字 proc_parameter:像存储过程传递参数( [IN|OUT|INOUT] param_name type ),其中in表示输入参数,out表示输出参数,inout表示既可以输入也可以输出:par

oracle利用分隔符,组合查询想表达的任何话

在实施中,我们可能会遇到客户对显示标题的要求.      比如,本来标题是:广西龙潭医院关于进一步加强政务信息报送工作的通知.然后他们想显示的格式为:<文件名>(桂龙医发[2015]23号 ).那么我们只需用sql语句的分隔符,组合查询出来即可.如下图: 效果图如下: 原文地址:http://bbs.delit.cn/thread-168-1-1.html 转载请注明出处; 撰写人:度量科技http://www.delit.cn

重构之路 组合查询之传参+存储过程

上篇博文给大家一起讨论了实现组合查询的一种方法,即在U层将select语句的where子句部分组装好,赋给一个字符串变量,传到D层然后与select子句组成完整的sql语句,之后执行,返回查询结果,就是这么简单,但是博文的结尾也留下了一个疑问,这种方法的安全性有点欠佳,有没有相对好一点的办法呢? 答案是肯定的,这次我们一起来看看我实现的另一种方法.首先给大家简单介绍一下这种方法的思路,其实也比较简单,最初我是想在程序代码里写sql查询语句的,然后将组合查询的各个条件的值当做实体参数(现在实体层定

重构之路 组合查询之传參+存储过程

上篇博文给大家一起讨论了实现组合查询的一种方法,即在U层将select语句的where子句部分组装好,赋给一个字符串变量.传到D层然后与select子句组成完整的sql语句.之后运行.返回查询结果,就是这么简单.可是博文的结尾也留下了一个疑问,这样的方法的安全性有点欠佳,有没有相对好一点的办法呢? 答案是肯定的.这次我们一起来看看我实现的还有一种方法.首先给大家简介一下这样的方法的思路,事实上也比較简单,最初我是想在程序代码里写sql查询语句的,然后将组合查询的各个条件的值当做实体參数(如今实体

佩特来项目经验小集合(2)___组合查询存储过程,报错 &amp;quot;varchar JBID=&amp;#39;&amp;#39; 转换成数据类型 int 时失败&amp;quot;

今天写一个组合查询的存储过程遇到这样一个问题:在将 varchar 值 'SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1 and JBID ='' 转换成数据类型 int 时失败.错误详情如图所看到的: 经百度:字符串变量和整型变量连接不能用+连接. 于是我採用cast()函数将DLSJB这个整型变量转换成字符串,这样问题就攻克了. 正确代码例如以下所看到的: ALTER PROCEDURE [dbo].[Proc_SH_WXJDList] @DH

佩特来项目经验小集合(2)___组合查询存储过程,报错 &quot;varchar JBID=&#39;&#39; 转换成数据类型 int 时失败&quot;

今天写一个组合查询的存储过程遇到这样一个问题:在将 varchar 值 'SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1 and JBID ='' 转换成数据类型 int 时失败.错误详情如图所示: 经百度:字符串变量和整型变量连接不能用+连接.于是我采用cast()函数将DLSJB这个整型变量转换成字符串,这样问题就解决了.正确代码如下所示: ALTER PROCEDURE [dbo].[Proc_SH_WXJDList] @DH varchar(

组合查询——如何使用窗体的继承达到事半功倍?

一个优秀的程序员就是要尽可能减少自己的代码量.我们日常的工作或者学习中都有可能遇到多个窗体结构类似,或者大同小异的情况,这时候如果在每个窗体都写一遍代码,或者纯粹的复制粘贴就太水了.想要偷懒的时候正是我们发现和创造的机会,我们的祖先也是这么过来的. 我在做机房收费系统个人重构版的时候,就遇到了基本数据维护.查看上机状态.上机信息统计和操作员工作记录四个窗体都组要用到组合查询而且窗体结构一致. 四个窗体中除了字段名不一致,其他的内容都一样,这种情况下我们用窗体的继承最合适了.在父窗体中写好公共的部

动态查询 字段随机组合查询

今日无事,闲来去往上商场逛逛,哈哈 节日又要到了吧. 发现在网上的查询中,有些字段是由用户自己选择,有时候是一个条件都没有,这样的实现在逻辑上是很容易实现的,只是,着手做的时候,却难度重重,今日无事,变自己写了个存储过程,经验证也小有成效,拿出来与大家分享,希望大家指导. 1 create proc sp_selec 2 @a varchar(10) = null, 3 @b varchar(20) = null, 4 @c varchar(10) = null, 5 @d varchar(10

组合查询——继承与多态的小练习

上次个人版机房收费做的时候,组合查询这里做的不好,没有抽出模板,导致感觉有很多冗余,这次自己挑U层,一方面是感觉自己的B层和D层做的可以提升的空间目前很小了,另一方面就是想加强一下自己对细节的注意问题. 上次组合查询是这样的,以代码为例: U层代码如下: Imports System.Collections '引入HashTable类 Public Class frmColWorkInfo Dim HtZD As New Hashtable '定义处理字段名转换的hashtable Dim Ht