如何在Where子句中涵盖两种不同的场景

时间:2014-08-24 18:21:52

标签: sql sql-server select case where-clause

我有一个只有一个参数@tag nvarchar(100) = ''的存储过程。

到目前为止,此处WHERE的{​​{1}}条款仅为SELECT

这可以按预期工作,并返回tag(即关键字)与输入参数完全匹配的所有记录。

如果输入参数不为空/'',那么我是否只能应用此Where子句?如果是,则返回所有记录?

我不能在这里使用WHERE F.tag = @tag,因为在匹配的情况下我只需要完全匹配,所以我正在寻找任何方式来覆盖一个Select中的两个场景,因此如果提供了标记则检查匹配,否则返回所有记录。

有人可以告诉我如何做到这一点,例如使用LIKE等?

1 个答案:

答案 0 :(得分:2)

WHERE @tag = '' OR F.tag = @tag