Как создать условие WHERE на основе значений параметров, которые не являются пустыми / нулевыми в хранимой процедуре? - PullRequest
1 голос
/ 21 декабря 2011

У меня есть хранимая процедура, в которой я выполняю операцию поиска, процедура принимает 10 входных параметров и возвращает найденные строки для этих параметров.

Я использую оператор поиска LIKE, но моя проблема в том, что есть вероятность, что только несколько параметров передаются со значениями, остальные могут быть пустыми или нулевыми.Я хочу исключить пустые / нулевые значения параметров из условия WHERE моего запроса, пожалуйста, предложите мне.

Заранее спасибо

SP

Ответы [ 2 ]

1 голос
/ 21 декабря 2011
select *
from YourTable
where (@Param1 is null or Field1 like @Param1)
  and (@Param2 is null or Field2 like @Param2)

Вы можете использовать любое условие вместо like

0 голосов
/ 21 декабря 2011

select * from Table where isnull(@Field1,Field1) = Field1 and isnull(@Field2,Field2) = Field2

Используя ту же технику, вы можете проверить пустое значение перед выполнением выбранной части запроса и преобразовать ее в нулевое значение перед выбором (тогда оно будет охватывать пустые и нулевые случаи)

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