最进一个项目 里面有个查询的功能,它是进行组合查询的, 而且用的是存储过程写。写这样的存储过程,需要注意单引号的使用,请看本人下面的例子,假如你以后写的话 记得注意写就行:

create proc selectbyname

(

@LinkmanName VARCHAR(50)=NULL,

@LinkmanBirthday VARCHAR(50)=NULL,

@LinkmanCatalog VARCHAR(50)=NULL,

@linkmanCompany VARCHAR(50)=NULL,

@LinkmanPhoneNumber VARCHAR(50)=NULL,

@LinkmanEmail VARCHAR(50)=NULL

)

as

declare @string VARCHAR(1000) //此处需要定义长一点那个string 因为你组合起来的话,整个语句加起来的字符就很多的了。

if ( LEN(@LinkmanName)>0)

begin

if @string IS NULL

set @string='select * from linkman where lm_name like '''+@LinkmanName+ '%'''

else

set @string=@string+' and lm_name like '''+@LinkmanName+ '%'''

end

if (LEN(@LinkmanBirthday)>0)

begin

if @string IS NULL

set @string=@string+' select * from linkman where lm_birthday='''+@LinkmanBirthday+''''

else

set @string=@string+' and lm_birthday='''+@LinkmanBirthday+''''

end

if ( LEN(@LinkmanCatalog)>0)

begin

if @string IS NULL

set @string=@string +' select * from linkman where lm_catalog like ''' + @LinkmanCatalog + '%'''

else

set @string=@string +' and lm_catalog like ''' + @LinkmanCatalog + '%'''

end

if (LEN(@linkmanCompany) >0 )

begin

if @string IS NULL

set @string=@string +' select * from linkman where lm_company like '''+ @linkmanCompany + '%'''

else

set @string=@string +' and lm_company like '''+ @linkmanCompany + '%'''

end

if ( LEN(@LinkmanPhoneNumber)>0)

begin

if @string IS NULL

set @string=@string +' select * from linkman where lm_mobile ='''+@LinkmanPhoneNumber+''''

else

set @string=@string +' and lm_mobile ='''+@LinkmanPhoneNumber+''''

end

if (LEN(@LinkmanEmail)>0)

begin

if @string IS NULL

set @string=@string +' select * from linkman where lm_email='''+@LinkmanEmail+''''

else

set @string=@string +' and lm_email='''+@LinkmanEmail+''''

end

if(@string is null)

begin

set @string='select * from linkman '

end

exec( @string)

?

程序界面:

SQL组合查询的存储过程写法 - 376735332 - 376735332的博客

?

确定按钮代码:

private void button1_Click(object sender, EventArgs e)

{

string strProName = "selectbyname";

string conn = DBUtility.SqlHelper.connString;

本文来源于网络,若有侵权,请告知,谢谢!!

SQL组合查询的存储过程写法的更多相关文章

  1. SQL Server查询所有存储过程信息、触发器、索引

    1. [代码]查询所有存储过程      01 select Pr_Name as [存储过程], [参数]=stuff((select ','+[Parameter] 02 from ( 03 se ...

  2. SQL Server分页的存储过程写法以及性能比较

    ------创建数据库data_Test ----- create database data_Test GO use data_Test GO create table tb_TestTable - ...

  3. SQL命令查询Oracle存储过程信息(代码内容等)

    SELECT * FROM ALL_SOURCE  where TYPE='PROCEDURE'  AND TEXT LIKE '%0997500%'; --查询ALL_SOURCE中,(脚本代码)内 ...

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

       今天写一个组合查询的存储过程遇到这样一个问题:在将 varchar 值 'SELECT * FROM View_DLS_WXJD_Customer WHERE 1=1 and JBID ='' ...

  5. 关系数据库SQL之高级数据查询:去重复、组合查询、连接查询、虚拟表

    前言 接上一篇关系数据库SQL之基本数据查询:子查询.分组查询.模糊查询,主要是关系型数据库基本数据查询.包括子查询.分组查询.聚合函数查询.模糊查询,本文是介绍一下关系型数据库几种高级数据查询SQL ...

  6. 【知识库】-数据库_MySQL之高级数据查询:去重复、组合查询、连接查询、虚拟表

    简书作者:seay 文章出处: 关系数据库SQL之高级数据查询:去重复.组合查询.连接查询.虚拟表 回顾:[知识库]-数据库_MySQL之基本数据查询:子查询.分组查询.模糊查询 Learn [已经过 ...

  7. Thinkphp查询 1.查询方式 2.表达式查询 3.快捷查询 4.区间查询 5.组合查询 6.统计查询 7.动态查询 8.SQL 查询

    1.使用字符串作为条件查询 $user = M('User'); var_dump($user->where('id=1 AND user="蜡笔小新"')->sele ...

  8. SQL语句汇总(三)——聚合函数、分组、子查询及组合查询

    聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计 ...

  9. SQL语句汇总(三)——聚合函数、分组、子查询及组合查询

    拖了一个星期,终于开始写第三篇了.走起! 聚合函数: SQL中提供的聚合函数可以用来统计.求和.求最值等等. 分类: –COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均 ...

随机推荐

  1. iOS网络推送消息

    在iOS项目的appdelegate.m文件中: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOpti ...

  2. Android中的多线程编程

    问题 Android的UI也是线程不安全的,如果要更新应用程序里的UI元素,必须在主线程中进行,否则就会抛异常.比如用一个Button的onClick函数去更新界面上的元素,就会得到一个CalledF ...

  3. UIApplication详解

    每个app有且只有一个UIApplication对象,当程序启动的时候通过调用UIApplicationMain方法得到的.可以通过sharedApplication方法得到. UIApplicati ...

  4. ASP通过ADODB读取Access数据库

    <% On Error Resume Next set conn=server.createobject("adodb.connection") mypath=server. ...

  5. Paths_Quartz2D

    Paths中的几个重要元素 Points void CGContextMoveToPoint (    CGContextRef c,    CGFloat x,    CGFloat y ); 指定 ...

  6. 曲线拟合的最小二乘法(基于OpenCV实现)

    1.原理 在现实中经常遇到这样的问题,一个函数并不是以某个数学表达式的形式给出,而是以一些自变量与因变量的对应表给出,老师讲课的时候举的个例子是犯罪人的身高和留下的脚印长,可以测出一些人的数据然后得到 ...

  7. java nio 与io区别

    转自:http://blog.csdn.net/keda8997110/article/details/19549493 当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使 ...

  8. util-linux编译unknown architecture 'BSD_LABELSECTOR' undeclared错误

    ------------------------------------------------------------------------------ In :: fdiskbsdlabel.h ...

  9. js⑤

    ##返回在制定位置的的字符  var result = str.charAt(1);  console.log(result);  console.log(str[1]); ##返回在指定的位置的字符 ...

  10. ADO.NET与ORM的比较:NHibernate实现CRUD(转)

    原文地址 http://blog.csdn.net/zhoufoxcn/article/details/5402511 说明:个人感觉在Java领域大型开发都离不了ORM的身影,所谓的SSH就是Spr ...