FreeTextTable过滤器搜索字符串

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