FTS 包含字符串连接
Posted
技术标签:
【中文标题】FTS 包含字符串连接【英文标题】:FTS Contains string concatenate 【发布时间】:2013-08-18 13:12:09 【问题描述】:我正在研究 FTS,但遇到了一个问题。关于 . How do you concatenate strings inside of a CONTAINS in SQL Server 2008?
我正在尝试使用包含 FTS 的功能 我需要将搜索字符串作为连接字符串传递或从标量函数返回字符串。但这两个选项在 FTS 中都不可用。
它不允许在“Contains
”子句中连接搜索字符串
select top 10 * from dbo.staging_table with (nolock)
where contains(text,N'"pakistan"'+'" Lahore"')
使用 (nolock) 从 dbo.staging_table 中选择前 10 个 * where contains(text,(select from dbo.getcityList()))
第二个选项再次不可用,因为它需要一个字符串参数。 我在视图中使用这个查询,所以我不能声明任何变量:( 请帮我解决这个问题
【问题讨论】:
【参考方案1】:您可以使用表值函数代替视图。
CREATE FUNCTION dbo.fTestFTS (@str NVARCHAR(4000))
RETURNS TABLE
RETURN (
select top 10 *
from dbo.staging_table
where contains(*, @str)
)
SELECT * FROM dbo.fTestFTS(N'"pakistan"' + ' &' + '" Lahore"')
注意搜索字符串中的 & 符号。
【讨论】:
以上是关于FTS 包含字符串连接的主要内容,如果未能解决你的问题,请参考以下文章