如何在存储过程的包含方法中使用参数
How to use parameters in contains method in store procedure
我正在测试存储过程中包含的方法。我希望看到这样的数据结果:
John 的示例结果:
- 约翰尼克
- 爸爸约翰
- 哈莉·约翰·弗雷迪
我不想使用 LIKE 方法。我们可以在 SP 中使用以 (*) 开头或以 (*) 结尾的运算符和参数吗?
CONTAINS(name,@name) // 查询正常
但如果我可以这样尝试:
CONTAINS(name, '"john" OR "john*"') // 查询有效
CONTAINS(name,'"@name" OR "@name*"') // 查询无效
使用参数相同的查询在 SP 中不起作用。在 SP 中可以这样做吗?
谢谢,
使用CONTAINS
,为了通过变量传递通配符,您需要使通配符成为变量的一部分。
在存储过程中执行此操作的最简单方法是添加变量(或修改当前变量)。
例如,
DECLARE @nameX NVARCHAR(4000) = '"' + @name + '" OR "' + @name + '*"'
...
CONTAINS(name, @nameX)
我正在测试存储过程中包含的方法。我希望看到这样的数据结果:
John 的示例结果:
- 约翰尼克
- 爸爸约翰
- 哈莉·约翰·弗雷迪
我不想使用 LIKE 方法。我们可以在 SP 中使用以 (*) 开头或以 (*) 结尾的运算符和参数吗?
CONTAINS(name,@name) // 查询正常
但如果我可以这样尝试:
CONTAINS(name, '"john" OR "john*"') // 查询有效
CONTAINS(name,'"@name" OR "@name*"') // 查询无效
使用参数相同的查询在 SP 中不起作用。在 SP 中可以这样做吗?
谢谢,
使用CONTAINS
,为了通过变量传递通配符,您需要使通配符成为变量的一部分。
在存储过程中执行此操作的最简单方法是添加变量(或修改当前变量)。
例如,
DECLARE @nameX NVARCHAR(4000) = '"' + @name + '" OR "' + @name + '*"'
...
CONTAINS(name, @nameX)