使用LIKE的where子句中的Microsoft SQL CASE语句

时间:2010-08-31 13:52:14

标签: sql

我曾经使用过一个场景,我在这里做了一个SQL where子句: 哪里    BranchName = CASE WHEN @pBranch<> ''然后@pBranch其他BranchName结束

这就是说我们正在进行分支名称查找,但是这个语句必须以某种方式满足LIKE子句。我们需要能够说'如果提供了pBranch参数,那么执行类似的搜索,否则忽略WHERE子句的那一部分。

任何线索?

谢谢, 雅克

4 个答案:

答案 0 :(得分:1)

你可以说:

SELECT *
FROM dbo
WHERE @pBranch = '' OR BranchName = @pBranch

这基本上说如果你把''传递给@pBranch,那么所有的结果都会被显示出来,否则,如果你传递了别的东西,它会按你的论点进行搜索

答案 1 :(得分:0)

Where BranchName Like IsNull(@Branch, BranchName)

答案 2 :(得分:0)

实际上我认为我正在寻找的答案如下:

... 哪里  o.BranchName就像@pBranchName<> ''然后@pBranchName否则o.BranchName结束 ...

答案 3 :(得分:0)

where @pBranch = '' or BranchName like @pBranch

(将通配符添加到like子句中的适当位置)

这将适用于数字,而不仅仅是字符串 - 因此,如果您将int参数作为0或值传入,则可以执行以下操作:

where @param = 0 or DBField = @param