2

我有一个存储过程和一些布尔变量(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
4

1 回答 1

3
SELECT * FROM myTable
where ( @myboolean = 1 and foo = 'bar' ) or @myboolean = 0
于 2013-04-30T18:01:27.250 回答