2009-07-09 6 views
1

Je rejoins un freetexttable en utilisant un paramètre searchTerm qui est également utilisé dans un certain nombre d'autres freetexttables dans la requête.Chaîne de recherche de filtre FreeTextTable

Je souhaite supprimer le nom de la ville de ce paramètre s'il existe dans la ligne en cours. Essayer d'utiliser remplacer comme ceci:

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

provoque une erreur de syntaxe.

Y at-il un autre moyen de le faire?

Répondre

1

Vous devez d'abord traiter @SearchText dans une requête séparée car le paramètre freetext_string pour FreeTextTable doit être une variable de chaîne - Je ne pense pas que le retour d'une fonction suffira, de toute façon vous cherchez à remplacer éventuellement plusieurs noms de villes comme 'c' est une table.

L'exemple ci-dessous entraînera la chaîne '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  
Questions connexes