2016-02-29 15 views
0

我正在測試存儲過程中包含的方法。我想看到的數據結果,如:如何在存儲過程中使用contains方法中的參數

例子結果爲約翰:

  • 約翰·尼克
  • 棒約翰
  • Harly約翰·弗雷迪

我不不想使用LIKE方法。我們可以在SP中使用以(*)運算符開始或結束於(*)運算符的參數嗎?


CONTAINS(姓名,@名) //查詢工作

,但如果我可以嘗試這樣的:

CONTAINS(名稱,「 「約翰」 或 「約翰*」 ') //查詢工作
CONTAINS(名字,' 「@名稱」 或 「@姓名*」') //查詢不工作

使用參數相同的查詢在SP中不起作用。是否可以在SP中執行此操作?

感謝,

+0

你可以嘗試把整個事情中的一個變量。例如,'DECLARE @nameX NVARCHAR(4000)='「'+ @name +'」或''+ @name +'*「''然後使用'CONTAINS(name,@nameX)' – ZLK

+0

ZLK,這看起來像正確的答案。你爲什麼不把它放在答案中,我會投票。 – cameront

回答

1

隨着CONTAINS,以便通過傳遞一個通配符與變量,你需要做的通配符變量的一部分。

在存儲過程中最簡單的方法是添加一個變量(或修改當前變量)。

例如,

DECLARE @nameX NVARCHAR(4000) = '"' + @name + '" OR "' + @name + '*"' 
... 
CONTAINS(name, @nameX) 
+0

謝謝,查詢工作沒有任何問題。乾杯 – Cagatay

相關問題