我一直在努力了很長一段時間才能得到這個查詢。通過的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語句,但可能存在更好的方法。
我真的很感謝你的幫助!