0

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

约翰的示例结果:

  • 约翰尼克
  • 爸爸约翰
  • 哈利·约翰·弗雷迪

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


CONTAINS(name,@name) // 查询正在运行

但如果我可以这样尝试:

CONTAINS(name, '"john" OR "john*"') // 查询正常
CONTAINS(name,'"@name" OR "@name*"') // 查询不正常在职的

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

谢谢,

4

1 回答 1

1

对于CONTAINS,为了通过变量传递通配符,您需要使通配符成为变量的一部分。

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

例如,

DECLARE @nameX NVARCHAR(4000) = '"' + @name + '" OR "' + @name + '*"'
...
CONTAINS(name, @nameX)
于 2016-02-29T05:07:37.517 回答