FreeTextTable过滤器搜索字符串
问题描述:
我正在使用searchTerm参数加入到freetexttable中,该参数也用于查询中的许多其他freetexttables。FreeTextTable过滤器搜索字符串
我想从该参数中删除城市名称(如果它存在于当前行中)。试图使用像这样的替换:
freetexttable(Gigs, Name, REPLACE(@searchText, c.CityName, '')) gigkt
ON g.GigID = gigkt.[Key]
导致语法错误。
有没有其他办法可以做到这一点?
答
您将首先必须在单独的查询中处理@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
在