我曾经使用过一个场景,我在这里做了一个SQL where子句: 哪里 BranchName = CASE WHEN @pBranch<> ''然后@pBranch其他BranchName结束
这就是说我们正在进行分支名称查找,但是这个语句必须以某种方式满足LIKE子句。我们需要能够说'如果提供了pBranch参数,那么执行类似的搜索,否则忽略WHERE子句的那一部分。
任何线索?
谢谢, 雅克
答案 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