2009-06-10 4 views
2

Я пытаюсь создать следующий SQL запрос (как, это является примером конечного запроса): -объединить две СОДЕРЖИТ звонки внутри, где положение

DECLARE @SearchQuery AS NVARCHAR(100) = 'yellow bird' 

SELECT Id, Name 
FROM dbo.FooBars 
WHERE CONTAINS(Name, N'FORMSOF(Thesaurus, yellow)') 
    AND CONTAINS(Name, N'FORMSOF(Thesaurus, bird)') 

Обратите внимание, как у меня есть два CONTAINS линии? Это связано с тем, что в поисковом запросе есть два слова. (a пробел является разделителем). Этот запрос может быть от 1 до n слов.

Как я могу сгенерировать этот код SQL на основе количества слов в поисковом запросе?

+0

Вы пробовали только добавить и СОДЕРЖАТЬ предложения для каждого поиска? –

+0

um .. не уверен, что вы имеете в виду. В настоящее время вышесказанное представляет собой _not_ динамический текст, который создается и затем выполняется. это код sql в хранимой процедуре .. ?? –

ответ

3

Вы можете поместить «И» в содержит себя, так что coud быть

select * 
from dbo.FooBars 
where contains(Name, 'FORMSOF(Thesaurus, yellow) AND FORMSOF(Thesaurus, bird)') 

со строкой «FORMSOF (тезаурус, желтый) и FORMSOF (тезаурус, птица)» застроенной в переменная, как

declare @searchCriteria varchar(200) 
set @searchCriteria = 'Some string you built up' 
select * 
from dbo.FooBars 
where contains(Name, @searchCriteria) 
+0

Винна. WiKID. приветственный помощник :) –

Смежные вопросы