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

Откуда:
Сообщений: 2
Добрый день!
Пытаюсь разобратся в операторах IF...ELSE , так что сильно не ругайте)
Подскажите пожалуйста, как можно реализовать подобный запрос .
2м параметрам задаются числовые значения (ножет быть и null), как можно реализовать проверку значений этих парамтеров в запросе? И можно ли такое делать
То что мне представляется так это типа :

IF @param1 =null Then
begin
Select * from Table
Where table.sum=@param2
end
ELSE
begin
Select * from Table
Where table.sum between param1 and param2
end
END
31 янв 13, 13:42    [13856695]     Ответить | Цитировать Сообщить модератору
 Re: Оператор IF...ELSE  [new]
Гость333
Member

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

 Select * from Table
 Where table.sum between isnull(@param1, param2) and @param2
31 янв 13, 13:47    [13856748]     Ответить | Цитировать Сообщить модератору
 Re: Оператор IF...ELSE  [new]
Cygapb-007
Member

Откуда:
Сообщений: 1677
nachtkind13
Добрый день!
Пытаюсь разобратся в операторах IF...ELSE , так что сильно не ругайте)
Подскажите пожалуйста, как можно реализовать подобный запрос .
2м параметрам задаются числовые значения (ножет быть и null), как можно реализовать проверку значений этих парамтеров в запросе? И можно ли такое делать
То что мне представляется так это типа :

IF @param1 IS null Then -- =null неверно
   begin
   Select * from Table
   Where table.sum=@param2
   end
ELSE
  begin
    Select * from Table
   Where table.sum between param1 and param2
  end
END--- лишний
31 янв 13, 13:50    [13856777]     Ответить | Цитировать Сообщить модератору
 Re: Оператор IF...ELSE  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
nachtkind13,
IF тут не нужен. Для вашего примера:
WHERE table.[sum] BETWEEN ISNULL(param1, param2) AND param2
31 янв 13, 13:51    [13856784]     Ответить | Цитировать Сообщить модератору
 Re: Оператор IF...ELSE  [new]
baracs
Member

Откуда: Москва
Сообщений: 7217
baracs
WHERE table.[sum] BETWEEN ISNULL(param1, param2) AND param2
@param1 и @param2, конечно.
31 янв 13, 13:57    [13856831]     Ответить | Цитировать Сообщить модератору
 Re: Оператор IF...ELSE  [new]
RESEARCH
Member

Откуда:
Сообщений: 187
--вариант3
where (table.sum=@param2 and @param1 is null) or (table.sum between @param1 and @param2)

-вариант4
if @param1 is null set @param1=@param2
...
...

where table.sum between @param1 and @param2

--вариань5
set @param1=coalesce(@param1,@param2)
...
...

where table.sum between @param1 and @param2
31 янв 13, 14:44    [13857273]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить