我有一个存储过程和几个布尔变量(Bit
)。
如果某个变量是False,我想放一个WHERE
语句。有条件/可选where语句
我知道我可以做这样的事情:
IF (@myBoolean = 1)
BEGIN
SELECT * FROM myTable
END
ELSE
SELECT * FROM myTable WHERE myTable.Foo = 'Bar'
有没有一种方法,使WHERE
声明optionnal?因为我有这么多的布尔变量,我不想为每个可能性有不同的查询。
这就是我的想法(我知道它不工作):
SELECT * FROM myTable
CASE WHEN @myBoolean = 0
THEN WHERE myTable.Foo = 'Bar'
ELSE --Do nothing
这有什么错'SELECT * FROM myTable的WHERE @myBoolean = 1或(myTable.Foo = '酒吧' 和@myBoolean = 0)'? – 2013-04-30 18:01:31