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

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. Adapter 启动时报错——2

    在安装tibco adr3  7.00以前的版本,在designer中启动adr3 会报出“无法加载adr3.dll”文件的错误,这是因为在designer中的palettes默认是指向adapter ...

  2. iOS GCD NSOperation NSThread等多线程各种举例详解(拷贝)

    2年多的iOS之路匆匆而过,期间也拜读来不少大神的博客,近来突然为自己一直做伸手党感到羞耻,是时候回馈社会.回想当年自己还是小白的时候,照着一些iOS多线程教程学,也只是照抄,只知其然.不知其所以然. ...

  3. SQLSERVER跨数据库操作 ---- sp_addlinkedserver

    由于项目需要跨数据库进行相应的sql操作(这里遇到的是sqlserver的A库,到sqlserver的B库) sp_addlinkedserver [ @server = ] ' server ' [ ...

  4. RBAC类的方法

    rbac类的 方法 authenticate($map,$model='')方法 传入查询用户的条件和用户表的MODEL 返回数组包含用户的信息 saveAccessList($authId=null ...

  5. 内核input子系统分析

    打开/driver/input/input.c 这就是input代码的核心 找到 static int __init input_init(void) { err = class_register(& ...

  6. 使用Object类型的多态引用是会付出代价的

    import java.util.*; public class FiveShi { String name; public void eat(){ System.out.println(" ...

  7. 通过声明Attribute属性改变不同类的输出效果

    ConsoleApplication--控制台应用程序 首先创建基类: using System; using System.Collections.Generic; using System.Lin ...

  8. JAVA中管道通讯(线程间通讯)例子

    Java I/O系统是建立在数据流概念之上的,而在UNIX/Linux中有一个类似的概念,就是管道,它具有将一个程序的输出当作另一个程序的输入的能力.在Java中,可以使用管道流进行线程之间的通信,输 ...

  9. leetcode216-Combination Sum III

    https://leetcode.com/problems/combination-sum-iii/ 用dfs枚举. class Solution { public: int kk, nn; vect ...

  10. Vue.js常用指令总结

    有时候指令太多会造成记错.记混的问题,所以本文在记忆的时候会采用穿插记忆的方式,交叉比对,不易出错. 本文主要讲了一下六个指令: v-if//v-show//v-else//v-for//v-bind ...