我正在测试包含存储过程中的方法。我希望看到数据结果如下:
约翰的示例结果:
我不想使用LIKE方法。我们可以使用带有(*)运算符的开头或结尾与SP中的参数吗?
CONTAINS(名称,@名称) //查询正在运作
但如果我可以尝试这样:
CONTAINS(名称,'“john”或“john *”') //查询正在工作
CONTAINS(名称,'“@ name”或“@name *”') //查询无法正常工作
使用参数相同的查询在SP中不起作用。是否可以在SP中执行此操作?
谢谢,
答案 0 :(得分:1)
使用CONTAINS
,为了通过变量传递通配符,您需要将通配符作为变量的一部分。
在存储过程中执行此操作的最简单方法是添加变量(或修改当前变量)。
例如,
DECLARE @nameX NVARCHAR(4000) = '"' + @name + '" OR "' + @name + '*"'
...
CONTAINS(name, @nameX)