SQL СОДЕРЖИТ параметры - PullRequest
       7

SQL СОДЕРЖИТ параметры

2 голосов
/ 10 апреля 2011

Есть ли способ для CONTAINS иметь имена столбцов в качестве обоих параметров, таких как

CONTAINS(cars.brand,COALESCE(@brand,cars.brand))

Теперь, если @brand = NULL, второй параметр будет cars.brand, делая запрос как

CONTAINS(cars.brand,cars.brand)

, что поможет мне игнорировать случай, когда я буду искать конкретную марку в таблице, как в

WHERE 1=1

и будет возвращать результат независимо от марки.

Но это не с синтаксической ошибкой, поскольку второй параметр должен быть строкой.

1 Ответ

2 голосов
/ 10 апреля 2011

Один из способов сделать это -

((@brand IS NULL) OR CONTAINS(cars.brand, @brand))

Передача NULL для параметра, по которому вы не хотите фильтровать.

[ПРИМЕЧАНИЕ: если у вас много параметров, вы должны знать о перехвате параметров и возможности неверных планов кэшированных запросов. Хотя это может иметь другое поведение для поиска в свободном тексте]

...