我一直在努力了很长一段时间才能得到这个查询。通过的fileno和/或searchfieldSQL Server的条件包含自由文本搜索处理空参数
DECLARE @pSearchFor AS NVARCHAR(100);
总之我的查询搜索 - 我在这里与空值的测试, '',或者单独的词 SET @pSearchFor = NULL - “ “马尔萨”和“mosta”;
IF ISNULL(@pSearchFor,'') = '' SET @pSearchFor = '""' ;
declare @fileNo nvarchar(50) = 'e/e'
select top 1000 r.FileId, r.FileNo, fs.SearchField, @pSearchFor
from regfile as r
left outer join FileSearchFields as fs on r.FileId = fs.FileID
where r.FileNo like
CASE
WHEN Len(@fileno) > 1 THEN '%'[email protected]+'%'
ELSE r.FileNo
END
AND
1 =
CASE WHEN ISNULL(@pSearchFor, '') = '' THEN 1 ELSE 0 END
or CONTAINS(fs.SearchField, @pSearchFor)
我得到什么返回如果@pSearchFor
为空,否则的伟大工程。
我需要返回所有实例,如果空
一个可能的解决办法可能是调用2个独立的SPS或使用if/else语句,但可能存在更好的方法。
我真的很感谢你的帮助!