Aqui está uma consulta de procedimento armazenado simplificada que estou usando com Full Text Search
:
SELECT
c.Id AS Id,
cd.Make AS Make,
cd.Model AS Model,
u.Id AS UserId,
FROM Car c
JOIN CarDetail cd ON c.Id = cd.CarId
JOIN CarImage ci ON c.Id = ci.CarId
JOIN User u ON c.UserId = u.Id
JOIN CONTAINSTABLE(CarDetail, *, @SearchTerms) AS fti ON cd.Id = fti.[KEY]
WHERE c.Status = 'Active'
Estou passando um parâmetro @SearchTerms
, que às vezes pode ser nulo ou vazio. Estou pensando se é possível juntar o CONTAINSTABLE
only quando o parâmetro tem um valor. Eu tentei isso:
CASE
WHEN (@SearchTerms IS NOT NULL) OR (LEN(@SearchTerms)) > 0
THEN JOIN CONTAINSTABLE(CarDetail, *, @SearchTerms) AS fti ON cd.Id = fti.[KEY]
END
mas não funcionou. Não tenho certeza se é possível ou se minha sintaxe está errada?