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

Откуда:
Сообщений: 21
Подскажите, пожалуйста, как передать в процедуру несколько значений переменной. Пример, Id=4,6,8,20
и сделать выборку с условием id=этой переменной.

createPROCEDURE [dbo].sale
@date_1 int,
@date_2 int

select date,id, sum(sale) as sale
from dbo.sale
where date>=@date_1 and date<@date_2 and id in ??
18 фев 21, 17:34    [22282998]     Ответить | Цитировать Сообщить модератору
 Re: как передать в процедуру несколько значений переменной  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37143
Через (временную) таблицу, табличный тип, строку (внутри парсить string_split, например).
Вариантов масса.
18 фев 21, 17:36    [22282999]     Ответить | Цитировать Сообщить модератору
 Re: как передать в процедуру несколько значений переменной  [new]
Qiwi1
Member

Откуда:
Сообщений: 21
Гавриленко Сергей Алексеевич,
а можно подробнее с примерами, например, вариант с временной таблицей или сплитом

Сообщение было отредактировано: 18 фев 21, 17:32
18 фев 21, 17:38    [22283001]     Ответить | Цитировать Сообщить модератору
 Re: как передать в процедуру несколько значений переменной  [new]
iap
Member

Откуда: Москва
Сообщений: 47045
DECLARE @ID VARCHAR(100)='4,6,8,20';
SELECT * FROM T WHERE ID ','+@ID+',' LIKE '%,'+CAST(ID AS VARCHAR)+',%';
18 фев 21, 17:55    [22283011]     Ответить | Цитировать Сообщить модератору
 Re: как передать в процедуру несколько значений переменной  [new]
Qiwi1
Member

Откуда:
Сообщений: 21
iap
DECLARE @ID VARCHAR(100)='4,6,8,20';
SELECT * FROM T WHERE ID ','+@ID+',' LIKE '%,'+CAST(ID AS VARCHAR)+',%';

спасибо, попробую!
18 фев 21, 18:09    [22283024]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить