FreeTextTable过滤搜索字符串

时间:2009-07-09 02:31:29

标签: sql-server freetexttable

我使用searchTerm参数加入了一个freetexttable,该参数也在查询中的许多其他自由文本表中使用。

我想从当前行中存在的城市名称中删除城市名称。试着像这样使用替换:

freetexttable(Gigs, Name, REPLACE(@searchText, c.CityName, '')) gigkt 
ON g.GigID = gigkt.[Key]

会导致语法错误。

还有其他方法吗?

1 个答案:

答案 0 :(得分:1)

你首先必须在一个单独的查询中处理@SearchText,因为FreeTextTable的freetext_string参数必须是一个字符串变量 - 我不认为函数的返回会做什么,无论如何你想要替换可能多个城市名称为“c”是一个表格。

以下示例将生成字符串'abc abc abc'

declare @T table
(
    name varchar(20)
)

insert into @T(name) values('belfast')
insert into @T(name) values('armagh')

declare @name varchar(100)

select @Name = 'abc belfast abc armagh abc'

select
    @Name = replace(@Name, t.Name, '')
from
    @T as t


select @Name