Включение предложения Where на основе параметров в хранимой процедуре - PullRequest
1 голос
/ 14 октября 2011

У меня есть параметр с именем @Codes, передающий необязательную строку системных кодов с разделителями-запятыми.

Если этот параметр имеет значение, я хочу отфильтровать запрос с помощью

WHERE 
  blah = blah AND
  Code IN ('Code1','Code2','etc.')

Если параметр нулевой или пустой, я хочу пропустить последний, где фильтр полностью.

Есть идеи?

1 Ответ

4 голосов
/ 14 октября 2011
WHERE 
  blah = blah AND
  (
  Code IN (SELECT TheItem FROM dbo.fnSplit(@Codes))
  OR
  @Codes IS NULL
  )

Чтобы преобразовать CSV в набор записей, можно бесплатно выбрать одну из многих функций . Лично я склоняюсь к подходу таблицы чисел

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...