2009-07-09 5 views
1

Я присоединяюсь к freetexttable, используя параметр searchTerm, который также используется в ряде других freetexttables в запросе.Строка поиска фильтра FreeTextTable

Я хотел бы удалить название города из этого параметра, если он существует в текущей строке. Попытка использования заменить следующим образом:

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

приводит к ошибке синтаксиса.

Есть ли другой способ, я могу это сделать?

ответ

1

Сначала вы должны обработать @SearchText в отдельном запросе, поскольку параметр freetext_string для FreeTextTable должен быть строковой переменной - я не думаю, что будет возвращаться функция, в любом случае вы хотите заменить возможно, несколько имен городов, таких как «c», являются таблицей.

В приведенном ниже примере приведет к строке «а а а»

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