读书人

sql 参数组合条件查询条件为空不考虑

发布时间: 2013-01-26 13:47:04 作者: rapoo

sql 参数组合条件查询,条件为空不考虑
sql 参数组合条件查询,条件为空不考虑

如:

select a,b,c from t0
inner join (
select
t1.Model
from t1
where 条件
) t80 on t80.Model=t0.Model

where 条件

现在是想传入参数, @a ,@b ,@c 当他们不为空时才作为条件。
比如:如果@a='' 那么 就不用把a=@a考虑进来。这时 where b=@b,c=@c;


[解决办法]
改成过程拼接最好。。

否则

a=case when isnull(@a,'')='' then a else @a end 也可以但

会用不到索引。
[解决办法]

引用:
或者这样
我想传一个参数@sql

select a, b,c frm tb where @sql

当然,如果直接执行这句话好像是有语法错误的。
那应该怎么处理好

用动态SQL的方法,

declare @tsql varchar(max)
select @tsql='select a, b,c from tb where '+@sql -->@sql是传入参数
exec(@tsql)

读书人网 >SQL Server

热点推荐