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

Откуда:
Сообщений: 47
Уважаемые, помогите.

В хранимой процедуре надо использовать следующую
конструкцию:
WHERE ProductID in (@inID)
@inId - это входной параметр может выглядеть так '36,37,12,3465'
Но это ведь varchar.
SQL ругается.
Как решить такую проблему?
22 апр 04, 16:00    [643884]     Ответить | Цитировать Сообщить модератору
 Re: параметр для выражения in  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
Динамический sql.
22 апр 04, 16:02    [643891]     Ответить | Цитировать Сообщить модератору
 Re: параметр для выражения in  [new]
Berg
Member

Откуда: Кр-ск
Сообщений: 3480
FAQ
22 апр 04, 16:02    [643895]     Ответить | Цитировать Сообщить модератору
 Re: параметр для выражения in  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
1.динамический запрос
exec ('WHERE ProductID in ('+@inID+')') 


2.слив данных строки во временную таблицу с одной колонкой и
where ProductID in (select productid from #tmp) 


для спящего время бодрствования равносильно сну
22 апр 04, 16:02    [643896]     Ответить | Цитировать Сообщить модератору
 Re: параметр для выражения in  [new]
FilEd
Member

Откуда:
Сообщений: 47
Сори но динамический SQL не нужен, есть другие идеи?
22 апр 04, 16:03    [643901]     Ответить | Цитировать Сообщить модератору
 Re: параметр для выражения in  [new]
FilEd
Member

Откуда:
Сообщений: 47
временную таблицу тоже не надо
22 апр 04, 16:04    [643905]     Ответить | Цитировать Сообщить модератору
 Re: параметр для выражения in  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Чем ссылка от Berg не устраивает?
22 апр 04, 16:04    [643906]     Ответить | Цитировать Сообщить модератору
 Re: параметр для выражения in  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 37101
Может и решать проблему не надо?
22 апр 04, 16:04    [643911]     Ответить | Цитировать Сообщить модератору
 Re: параметр для выражения in  [new]
FilEd
Member

Откуда:
Сообщений: 47
Решать надо, читаю ссылку
22 апр 04, 16:08    [643932]     Ответить | Цитировать Сообщить модератору
 Re: параметр для выражения in  [new]
FilEd
Member

Откуда:
Сообщений: 47
Я решил эту проблему:

DECLARE  @TempInID varchar(4000)

SET @TempInID = ','+@InID+','
SET @TempInID = REPLACE(@TempInID,' ','')


а потом во WHERE:

  (case @InId when '' then '1' else @TempInID end) LIKE

(case @InId when '' then '1' else '%,'+CAST(ProductID as varchar(100))+',%' end)


УРА!
22 апр 04, 16:50    [644191]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить