SQL多个条件查询语句

设计了一个如图的查询项
如只填写地类编码(DLBM),则只搜索DLBM,其他不搜索
如果填写了多项(如地类编码DLBM和地类名称DLMC),则搜索DLBM and DLMC
想知道有什么语句能够实现这个功能么?就是将非空的textbox才作为搜索项
个人编程水平较差..只能想到用if 语句进行排列组合判断,感觉非常繁琐,效率也很低
所以特来求助

1、首先我们打开电脑里的SQL打开一个数据库。

2、然后我们点击界面上方菜单栏里的表选项打开数据库的一张表进行查询。

3、然后我们选择表右上角的加号键。

4、然后我们在编辑器中输入如图所示代码进行数据查询。

5、然后我们点击运行查看运行结果。

6、多条件查询最终结果如图所示我们可以看到多条件查询语句成功。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-08
Declare @DLBM nvarchar(255),@DLMC nvarchar(255)
set @DLBM='查询内容'
set @DLMC='查询内容'
select  * from 表名称 where DLBM=@DLBM and len(@DLBM)>0
union
select  * from 表名称 where DLMC=@DLMC and len(@DLMC)>0
.......拼接全部条件追问

编译出现以上错误..应该是SQL语句错误..麻烦请看下哪里应该修改

追答

你写的不对,不是给你定义了变量嘛,把数据放在
set @DLBM='查询内容'
set @DLMC='查询内容'

你的语法问题
两个SQL 拼 union 两头 都不需要分号,只要空格就可以

追问

这是在c#中调用的啊,变量在之前定义过了..
就是不知道C#中SQL语句具体怎么写

追答

string Sql="select * from dltb where 1=1 ";
if( DLBM.Length>0)
Sql+=" and DLBM='"+DLBM+"' ";
if( TBBH.Length>0)
Sql+=" and TBBH='"+TBBH+"' ";

本回答被提问者和网友采纳
第2个回答  2014-11-05
你都用在一张表里面嘛追问

是来自同一张表的数据

追答

你可以这样写 select * from table where DLBM like ‘%+“DLBM”+%’ and DLMC like ‘%+“DLMC”+%’ and ·······但是影响查询效率。

相似回答