老实说,我已经在这里发布了其他问题,提到有条件的条款,我没有看到任何似乎对我的情况有用的答案。如果有,请指点我!
在SSRS报告调用的存储过程中,用户可以在下拉列表中选择两个值中的一个 - 例如“是”或“否”,并进入变量@color
。
在sproc的WHERE
子句中,我需要根据用户的选择进行不同的过滤。
那么,如果@color = 'Yes'
,那么我需要在WHERE
条款中有一行读取类似tb1.somecolumn = 'BLUE'
的内容。但是如果@color = 'No'
那么我根本不需要where子句中的那一行(tb1.somecolumn
可以是任何值)。
我如何有条件地在WHERE
条款中包含一行?
在WHERE中包括对@color
的检查如下。
WHERE (@color = 'No')
OR (@color = 'Yes' AND tb1.somecolumn = 'BLUE')
说明:
如果@color
的值是'No'
,则返回所有行。
如果@color
的值是'Yes'
,那么只返回'BLUE'
行。
请尝试以下条件
WHERE (@color = 'Yes' AND tb1.somecolumn = 'BLUE')
OR (@color = 'No' AND tb1.somecolumn = tb1.somecolumn)