前几天写查询,简单的sql又满足不了,只能写在存储过程里面,先把数据放在临时表里面,然后在给临时表拼接条件进行查询,最后执行,注意这里执行的内容是最关键的。
如下:
set @ls = 'select *from #Tmps where 1=1'; //这是现将临时表赋给参数,拼接上1=1 方便下面 继续拼接and条件
if @parmfirst <>''
begin
set @ls =@ls+ ' and mobile='+@parmfirst;
end
if @parmsecond <>''
begin
set @ls =@ls+ ' and baby_name='''+@parmsecond+''''
end
if @classnum <>''
begin
set @ls = @ls+ ' and s_c_id='+@classnum;
end
print @ls//这是打印出来最后的sql
exec (@ls)//exec直接执行声明的变量,注意千万要加上括号()不然会一直报错
end