当尝试根据是否传递某个值返回适当的结果时,我遇到了使用CASE时遇到的问题。在SQL Server 2008中使用CASE
例如我想运行一个查询,如果郊区传递
WHEN @suburb <> '' THEN
@suburb
END
= [Suburb]
AND
[City] = @city
但是怎么办,这样,当没有郊区传递它仅使用这个城市我只运行查询?
我应该写下如下的查询吗?
WHERE
(
[Suburb] = @suburb
AND
[City] = @city
)
OR
(
[City] = @city
)
我绝对不会写在第二种形式。 – 2012-02-21 21:42:55
@Aaron Bertrand - 为什么不推荐在第二个写? – PeanutsMonkey 2012-02-21 22:26:26
因为为什么重复两次“城市= @城市”条款? – 2012-02-21 22:35:35