有条件地在T-SQL中包含一条线,其中



老实说,我已经讨论了在这里发布的其他问题,这些问题提到了条件,我没有看到任何对我的情况有用的答案。如果这样做,请指出我!

在SSRS报告的存储过程中,用户可以在下拉列表中选择两个值之一 - 说是"是"或"否",然后进入变量@color

在Sproc的WHERE子句中,我需要根据用户的选择来进行不同的过滤。

因此,如果@color = 'Yes',那么我需要在WHERE子句中有一个读取 tb1.somecolumn = 'BLUE'之类的行。但是,如果@color = 'No',那么我根本不需要该行(tb1.somecolumn可以是任何值)。

我如何有条件地在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)

相关内容

最新更新