如何在存储过程中使用contains方法中的参数

时间:2016-02-29 00:25:40

标签: sql sql-server parameters contains freetext

我正在测试包含存储过程中的方法。我希望看到数据结果如下:

约翰的示例结果:

  • John Nick
  • Papa John
  • Harly John Fredy

我不想使用LIKE方法。我们可以使用带有(*)运算符的开头或结尾与SP中的参数吗?


CONTAINS(名称,@名称) //查询正在运作

但如果我可以尝试这样:

CONTAINS(名称,'“john”或“john *”') //查询正在工作
CONTAINS(名称,'“@ name”或“@name *”') //查询无法正常工作

使用参数相同的查询在SP中不起作用。是否可以在SP中执行此操作?

谢谢,

1 个答案:

答案 0 :(得分:1)

使用CONTAINS,为了通过变量传递通配符,您需要将通配符作为变量的一部分。

在存储过程中执行此操作的最简单方法是添加变量(或修改当前变量)。

例如,

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