2016-12-08 2 views
0

Как использовать оператор IN в SQL Server? Я использую одну таблицу с 5 столбцами. Но я хочу получить выбранные столбцы с помощью хранимой процедуры, напримерКак использовать оператор (IN) в SQL Server

Select * 
From products 
Where proprice between @price1 and @price2 
    and categoryid in (@cID) 

Выполняя эту хранимую процедуру, она выполняется успешно. Но я передаю значения трем параметрам, я не могу получить верные данные.

выборки данных:

ProductID ProductName ProductImage   ProductPrice 
20  Nike Shoe ~/Images/NikeShoe1.jpg 5000 
+0

показать, как лет данные образца образца выглядят как – TheGameiswar

+0

В столбце категории мы hav несколько идентификаторов, когда я даю запрос ниже sp_range '1000', '25000', ('1,2') ... Я пробовал этот формат, он не может получить правильное значение –

+0

Добавить образцы данных вашей таблицы и переменной '@ cID' –

ответ

0

Попробуйте это:

Убедитесь, что вы передаете paramters, как '1,2' не '(1,2)'

Select * 
from products 
where (proprice between @price1 and @price2) and (CHARINDEX(','+CAST(categoryid as VARCHAR(8000))+ ',', ','[email protected]+',')>0) 

если вы передаете параметры, как '(1,2)'

select @cid=REPLACE(@cid,'(',''); 
select @cid=REPLACE(@cid,')',''); 

Select * 
from products 
where (proprice between @price1 and @price2) and (CHARINDEX(','+CAST(categoryid AS VARCHAR(8000))+ ',', ','[email protected]+',')>0) 
+0

Не имеет значения ... все являются операторами 'AND'. Проблема заключается в проверке переменной '@ cID' –

+0

sp_range '1000', '25000', ('1,2') Я пробовал этот формат –

+0

@ VasanthJack, не пропускайте идентификаторы внутри(), вместо этого передайте его как '1, 2 'и используйте обновленный ответ. Он должен работать. –

0

Попробуйте это, если эти значения запятыми. Также читайте о нормализации

Select * from products 
where proprice between @price1 and @price2 and '%,'+categoryid+',%' like '%,'[email protected]+'%,' 
+0

Я пробовал этот запрос и не мог получить правильные данные –

+0

Опубликовать некоторые примеры данных и формат значений @cID – Madhivanan

+0

sp_range '1000', '25000', ('1,2') –