Строка поиска фильтра FreeTextTable - PullRequest
1 голос
/ 09 июля 2009

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

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

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

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

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

1 Ответ

1 голос
/ 09 сентября 2009

Сначала вам нужно будет обработать @SearchText в отдельном запросе, так как параметр freetext_string для FreeTextTable должен быть строковой переменной - я не думаю, что возврат к функции будет полезен, в любом случае вы собираетесь заменить, возможно, несколько названий городов, так как '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    
...