0

我在 FTS 上工作,但一直遇到问题。关于 . 如何在 SQL Server 2008 的 CONTAINS 内连接字符串?

我试图使用 FTS 的包含函数,我需要将搜索字符串作为连接字符串传递或从标量函数返回字符串。但这两个选项在 FTS 中都不可用。

它不允许在“ Contains”子句中连接搜索字符串

select top 10 * from dbo.staging_table with (nolock)
where contains(text,N'"pakistan"'+'" Lahore"')

选择前 10 * from dbo.staging_table with (nolock) where contains(text,(select from dbo.getcityList()))

第二个选项再次不可用,因为它需要一个字符串参数。我在视图中使用这个查询,所以我不能声明任何变量:(请帮我解决这个问题

4

1 回答 1

0

您可以使用表值函数代替视图。

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"')

注意搜索字符串中的和号。

于 2013-08-21T10:19:17.563 回答