条件/可选where语句

时间:2013-04-30 17:59:12

标签: tsql dynamic where

我有一个存储过程和一些布尔变量(Bit) 如果某些变量为False,我想放一个WHERE语句。

我知道我可以这样做:

IF (@myBoolean = 1)
BEGIN
SELECT * FROM myTable
END
ELSE
SELECT * FROM myTable WHERE myTable.Foo = 'Bar'

有没有办法让WHERE语句选项?因为我有这么多的布尔变量,所以我不希望对每种可能性都有不同的查询。
这就是我的想法(我知道它不起作用):

SELECT * FROM myTable 
CASE WHEN @myBoolean = 0 
THEN WHERE myTable.Foo = 'Bar'
ELSE --Do nothing

1 个答案:

答案 0 :(得分:3)

SELECT * FROM myTable
where ( @myboolean = 1 and foo = 'bar' ) or @myboolean = 0