ylkj 发表于 2016-3-3 18:58:00

请问参数传递中,有些参数当没有值时,不在where条件中做筛选,请问这个怎么实现?

请问参数传递中,有些参数当没有值时,不在where条件中做筛选,请问这个怎么实现?
比如select *from Awhere b=@b and C=@C
传递参数树时,根据C的值决定查询结果是 select *from Awhere b=@b and C=@C还是 select *from Awhere b=@b ,这个要怎么实现呢?

Lenka.Guo 发表于 2016-3-4 09:19:00

当C为空时就不做筛选,分为两个步骤实现:
1. 设置参数允许为NULL
2. 在SQL 语句中添加 参数为空条件;
select *fromAwhere b=@b and (C=@C or @C is NULL);

ylkj 发表于 2016-3-7 08:53:55

Lenka.Guo 发表于 2016-3-4 09:19
当C为空时就不做筛选,分为两个步骤实现:
1. 设置参数允许为NULL
2. 在SQL 语句中添加 参数为空条件;
...

不好意思,不是参数的值为NULL,是如果我们定义了一个参数@C,如果这个参数传值了,就加到where条件里,如果参数不传值,and c=@c就不在where条件里出现,不使用这个条件过滤~!

Lenka.Guo 发表于 2016-3-7 10:12:37

您好,

您是指根据参数是否为空来选择具体的SQL 语句,这个与报表参数具体的传的值没有关系,报表参数只是用来接收值的,具体的操作还是要根据业务逻辑来判断;
根据您的需求,建议您SQL 中创建触发器或存储过程来执行,http://www.gcpowertools.com.cn/d ... !Documents/_309.htm
页: [1]
查看完整版本: 请问参数传递中,有些参数当没有值时,不在where条件中做筛选,请问这个怎么实现?