Строка поиска фильтра FreeTextTable

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

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

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

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

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

1 ответ

Решение

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

В приведенном ниже примере получится строка '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    
Другие вопросы по тегам