动态参数 -- 为空不查询此字段

 

动态参数,在润乾报表上,有着多样的用法和功能,此处介绍一个能优化运算效率的写法。
当参数传值为空,即不传值的时候,不对此参数进行筛选。

常规的我们的写法是 数据集 sql 为

select * from test where 
(id=? or ? is null)
and
(name =? or ? is null)

这样的写法来执行为空查询全部。但是在参数很多的时候,每个查询,都相当于是对数据库遍历一次,比较影响实际的效率。在这里,使用动态参数就可以很轻易的解决这个问题、。

具体写法如下图所示:

imagepng

if(@id=="" || @id==null,""," and id ='"+@id+"'")

那么在实际的 sql 上,sql 语句需要有所变化。
改为

select * from test where 1=1 ${id1} ${name1}

多个参数,依照此方法即可。
这样,在参数为空时,实际查询的 sql 为

select * from test where 1=1 。