Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 запрос с двумя параметрами  [new]
гуня
Member

Откуда:
Сообщений: 201
есть запрос
select * from table
есть 2 поля, по которым идет выборка. но эти поля могут либо вобще не передаваться, либо передаться одно из них, либо сразу 2 поля передаться в запрос. как правильнее всего сделать запрос
вот комбинации

-если параметров нету тогда select * from table
-если передали 1 параметр тогда select * from table where p1=@p1 или select * from table where p2=@p2
-если передали 2 параметра тогда select * from table where p1=@p1 and p2=@p2

можно ли это свернуть в 1 запрос, как вобще такие задачи решаются?
29 окт 09, 21:41    [7859174]     Ответить | Цитировать Сообщить модератору
 Re: запрос с двумя параметрами  [new]
step_ks
Member

Откуда:
Сообщений: 936
http://msdn.microsoft.com/ru-ru/library/ms188361.aspx
29 окт 09, 22:03    [7859222]     Ответить | Цитировать Сообщить модератору
 Re: запрос с двумя параметрами  [new]
гуня
Member

Откуда:
Сообщений: 201
step_ks,

и как это может мне помочь?
мне нужно составить запрос чтобы если параметры не передавались то они не участвовали в условии
29 окт 09, 22:12    [7859243]     Ответить | Цитировать Сообщить модератору
 Re: запрос с двумя параметрами  [new]
так наверна
Guest
select * from table where p1=ISNULL(@p1, p1) and p2=ISNULL(@p2, p2)
29 окт 09, 22:39    [7859310]     Ответить | Цитировать Сообщить модератору
 Re: запрос с двумя параметрами  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
так наверна
select * from table where p1=ISNULL(@p1, p1) and p2=ISNULL(@p2, p2)
а почему выбросили строки, для которых p1 IS NULL OR p2 IS NULL?
29 окт 09, 22:56    [7859361]     Ответить | Цитировать Сообщить модератору
 Re: запрос с двумя параметрами  [new]
из вредности
Guest
iap
так наверна
select * from table where p1=ISNULL(@p1, p1) and p2=ISNULL(@p2, p2)
а почему выбросили строки, для которых p1 IS NULL OR p2 IS NULL?
29 окт 09, 23:03    [7859379]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить