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

Откуда:
Сообщений: 66
Уважаемые коллеги, помогите написать запрос
Есть параметр который передается в запрос, если он равен 1 , то в where выбираем все записи, если любое другое число , то выбираем только записи в которых соотв.поле равно параметру

declare @usr int
set @usr=1

select * from object where usr_key= 
-- что написать здесь (условие) , т.е.  если usr =1 то выбираем все записи , если нет , то usr_key=usr


Спасибо
29 окт 13, 11:28    [15045382]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
_s_e_r_g_e_
-- что написать здесь (условие) , т.е.  если usr =1 то выбираем все записи , если нет , то usr_key=usr

Использовать OR
29 окт 13, 11:29    [15045393]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать запрос  [new]
_s_e_r_g_e_
Member

Откуда:
Сообщений: 66
Glory
_s_e_r_g_e_
-- что написать здесь (условие) , т.е.  если usr =1 то выбираем все записи , если нет , то usr_key=usr

Использовать OR


select * from object where usr_key=????? or usr_key=@usr



не могу сообразить как это синтаксически написать?
29 окт 13, 11:38    [15045460]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать запрос  [new]
Glory
Member

Откуда:
Сообщений: 104751
select * from object where @usr=1 or usr_key=@usr
29 окт 13, 11:39    [15045474]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать запрос  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
IF @usr=1 
SELECT * FROM object
ELSE
SELECT * FROM object where usr_key=@usr
29 окт 13, 11:41    [15045490]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать запрос  [new]
_s_e_r_g_e_
Member

Откуда:
Сообщений: 66
Спасибо, большое!
29 окт 13, 11:46    [15045526]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать запрос  [new]
_s_e_r_g_e_
Member

Откуда:
Сообщений: 66
_s_e_r_g_e_
Спасибо, большое!


оба варианта работают
29 окт 13, 11:47    [15045538]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать запрос  [new]
Сергей Викт.
Member

Откуда: Москва
Сообщений: 888
_s_e_r_g_e_
_s_e_r_g_e_
Спасибо, большое!


оба варианта работают

Вариант Glory красивее. Второй проще для восприятия:)
29 окт 13, 11:50    [15045560]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать запрос  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
SELECT * FROM object WHERE usr_key=ALL(SELECT @usr WHERE @usr<>1);
29 окт 13, 11:50    [15045567]     Ответить | Цитировать Сообщить модератору
 Re: помогите написать запрос  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
iap
SELECT * FROM object WHERE usr_key=ALL(SELECT @usr WHERE @usr<>1);
здесь еще выберутся все записи в случае @usr = NULL
29 окт 13, 13:25    [15046184]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить