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

Откуда:
Сообщений: 4
Подскажите кто-нибудь, как пользоваться конструкцией if else в mssql. Нужно сделать вариативную выборку в зависимости от параметров т.е. есть метод созданный через tableadapter и чтоб не писать новый метод для каждой выборки можно как-то сделать различные результаты в зависимости от параметров (нулевых переменных). Т.е. допустим запрос:

SELECT id FROM table WHERE (paramert1=@parametr1) AND (parametr2=@parametr2)

Нужно сделать запрос что-то типо

SELECT id FROM table WHERE id in (if @parametr1='' then select id from table else select id from table where parametr1=@parametr) AND (parametr2=@parametr2)
Можно ли так делать вообще или может быть есть какие-то другие способы извлечения из бд с помощью одного метода, но с различными параметрами (допустим если 0, то все данные независимо от этого параметра, если параметр >0 то учитывая его значение)
27 июн 13, 08:13    [14489695]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
angel_zar
Member

Откуда: Барнаул
Сообщений: 902
https://www.sql.ru/faq/faq_topic.aspx?fid=114
Select * from a
where @param=0 or @param=id
27 июн 13, 08:26    [14489723]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Benderz
Member

Откуда:
Сообщений: 4
angel_zar
https://www.sql.ru/faq/faq_topic.aspx?fid=114
Select * from a
where @param=0 or @param=id


Так тупо 2 значения выведет, в бд значения 0 вообще нету, но нужно чтоб при подаче нуля в метод извлекало все значения, а при подаче допустим 10 только там где 10 стоит
27 июн 13, 08:28    [14489729]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Benderz
Member

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

Чот ссылку не заметил, вроде судя по описанию что надо, спасибо. ЩА пробовать буду
27 июн 13, 08:43    [14489760]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
angel_zar
Member

Откуда: Барнаул
Сообщений: 902
Benderz
angel_zar
https://www.sql.ru/faq/faq_topic.aspx?fid=114
Select * from a
where @param=0 or @param=id


Так тупо 2 значения выведет, в бд значения 0 вообще нету, но нужно чтоб при подаче нуля в метод извлекало все значения, а при подаче допустим 10 только там где 10 стоит


Вы запрос то хоть пробовали
тут с тестовыми данными
[spoiler]select *
into #TMP
from
(Select 1 as id
union all
select 2
union all
select 3
union all
select 4
union all
select 5
) as a

Declare @param int

set @param=0

Select * from #TMP
where @param=0 or @param=id

set @param=3

Select * from #TMP
where @param=0 or @param=id

drop table #TMP[/spoiler]
27 июн 13, 08:46    [14489770]     Ответить | Цитировать Сообщить модератору
 Re: Помогите с запросом  [new]
Benderz
Member

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

Чот мне стыдно стало :D решение гениально простое, видимо 3х часовой сон сильно сказывается. Еще раз спасибо
27 июн 13, 09:11    [14489854]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить