Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 WHERE (MyColValue IN (@MY_PARAMETER)) - как создать @MY_PARAMETER вручную?  [new]
Gena928
Member

Откуда: Москва
Сообщений: 1139
День добрый,

Есть простенький SQL запрос, где параметр может принимать множественные значения:
 SELECT * FROM MY_TABLE WHERE (MyColValue IN (@MY_PARAMETER))


Как вручную присвоить значение переменной @MY_PARAMETER? Если быть точным, у меня там 3 кода страны: RU, KZH, BEL.

Я раньше никогда не работал с условием "IN ()" всегда было точное соответствие.
Параметр будет передаваться в в хранимку из C#.

Спасибо.
30 янв 12, 16:08    [11997493]     Ответить | Цитировать Сообщить модератору
 Re: WHERE (MyColValue IN (@MY_PARAMETER)) - как создать @MY_PARAMETER вручную?  [new]
Oblom
Member

Откуда: Moscow Square
Сообщений: 635
Gena928,
SELECT * FROM MY_TABLE WHERE (MyColValue IN ('RU', 'KZH', 'BEL'))
30 янв 12, 16:14    [11997561]     Ответить | Цитировать Сообщить модератору
 Re: WHERE (MyColValue IN (@MY_PARAMETER)) - как создать @MY_PARAMETER вручную?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31948
Gena928
Есть простенький SQL запрос, где параметр может принимать множественные значения:
...
Параметр будет передаваться в в хранимку из C#.

Параметры, принимающие множественные значения, называются Возвращающие табличное значение параметры
30 янв 12, 16:23    [11997656]     Ответить | Цитировать Сообщить модератору
 Re: WHERE (MyColValue IN (@MY_PARAMETER)) - как создать @MY_PARAMETER вручную?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Gena928
День добрый,

Есть простенький SQL запрос, где параметр может принимать множественные значения:
SELECT * FROM MY_TABLE WHERE (MyColValue IN (@MY_PARAMETER))
Здесь нет "множественных значений"!
Тут только одно значение @MY_PARAMETER
Это, конечно, частный случай множества (состоящего из одного элемента),
но Вы же имели в виду нечто другое?
30 янв 12, 16:42    [11997813]     Ответить | Цитировать Сообщить модератору
 Re: WHERE (MyColValue IN (@MY_PARAMETER)) - как создать @MY_PARAMETER вручную?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Gena928,

SELECT * FROM MY_TABLE WHERE ','+MyColValue+',' LIKE '%,'+REPLACE(@MY_PARAMETER,' ','')+',%';
Но сначала попрощайтесь с индексом на поле MyColValue - он тут не может использоваться.
30 янв 12, 17:12    [11998096]     Ответить | Цитировать Сообщить модератору
 Re: WHERE (MyColValue IN (@MY_PARAMETER)) - как создать @MY_PARAMETER вручную?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
Gena928,

SELECT * FROM MY_TABLE WHERE ','+MyColValue+',' LIKE '%,'+REPLACE(@MY_PARAMETER,' ','')+',%';
Но сначала попрощайтесь с индексом на поле MyColValue - он тут не может использоваться.
Конечно же, наоборот!
SELECT * FROM MY_TABLE WHERE ','+REPLACE(@MY_PARAMETER,' ','')+',' LIKE '%,'+MyColValue+',%';
30 янв 12, 17:14    [11998113]     Ответить | Цитировать Сообщить модератору
 Re: WHERE (MyColValue IN (@MY_PARAMETER)) - как создать @MY_PARAMETER вручную?  [new]
Gena928
Member

Откуда: Москва
Сообщений: 1139
iap,

Спасибо, буду пробовать.
30 янв 12, 18:00    [11998617]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить