老实说,我已经解决了此处发布的其他问题,其中提到有条件的where子句,但我没有看到任何适合我情况的答案。如果有的话,请指向我!
在由SSRS报告调用的存储过程中,用户可以在下拉列表中选择两个值之一-说“是”或“否”,然后该变量进入变量@color
。
在存储过程的WHERE
子句中,我需要根据用户的选择进行不同的过滤。
因此,如果是@color = 'Yes'
,那么我需要在WHERE
子句中有一行,内容类似于tb1.somecolumn = 'BLUE'
。但是如果使用@color = 'No'
,那么我根本不需要where子句中的那一行(tb1.somecolumn
可以是任何值)。
如何在WHERE
子句中有条件地包含一行?
答案 0 :(得分:1)
尝试以下条件
WHERE (@color = 'Yes' AND tb1.somecolumn = 'BLUE')
OR (@color = 'No' AND tb1.somecolumn = tb1.somecolumn)
答案 1 :(得分:1)
按如下所示在WHERE中包含@color
的支票。
WHERE (@color = 'No')
OR (@color = 'Yes' AND tb1.somecolumn = 'BLUE')
说明:
如果@color
的值为'No'
,则返回所有行。
如果@color
的值为'Yes'
,则仅返回'BLUE'
行。