У меня есть хранимая процедура, когда я ее выполняю, я получаю ошибку
Ошибка преобразования при преобразовании значения varchar '+@dptId+' в тип данных int
Я получаю DepartmentId
в виде строки типа (1,3,5,77)
и передаю ее в свою хранимую процедуру.
create table dummy (id int,name varchar(100),DateJoining Datetime, departmentIt int)
insert into dummy values (1,'John','2012-06-01 09:55:57.257',1);
insert into dummy values(2,'Amit','2013-06-01 09:55:57.257',2);
insert into dummy values(3,'Naval','2012-05-01 09:55:57.257',3);
insert into dummy values(4,'Pamela','2012-06-01 09:55:57.257',4);
insert into dummy values(5,'Andrea','2012-09-01 09:55:57.257',3);
insert into dummy values(6,'Vicky','2012-04-01 09:55:57.257',4);
insert into dummy values(7,'Billa','2012-02-01 09:55:57.257',4);
insert into dummy values(8,'Reza','2012-04-01 09:55:57.257',3);
insert into dummy values (9,'Jacob','2011-05-01 09:55:57.257',5);
Запрос, который я пробовал:
declare @startdate1 varchar(100) ='20120201'
declare @enddate1 varchar(100)='20130601'
declare @dptId varchar(100)='3,4'
select *
from dummy
where DateJoining >= @startdate1 and DateJoining < @enddate1
and departmentIt IN (@dptId);
IN
так не работает. Как насчетdepartmentIt = @dptId1 or departmentIt = @dptId2;
? - person juergen d   schedule 01.06.2013departmentIt in (1,3)
, и она работает, теперь, когда я использую параметризованный запрос, я получаю сообщение об ошибке. - person Satinder singh   schedule 01.06.2013departmentIt in (1,3)
работает, аdepartmentIt in ('1,3')
нет, так как это всего лишь значение 1 — строка, а не 2 числа. - person juergen d   schedule 01.06.2013or
, потому что я получаю значения@dptId
в виде строки - person Satinder singh   schedule 01.06.2013sql dynamic "in" comma separated
- person HABO   schedule 01.06.2013