Tôi có một thủ tục lưu trữ khi tôi thực hiện nó tôi đã nhận lỗiLàm thế nào để vượt qua tham số chuỗi với `hành IN` trong thủ tục lưu trữ SQL Server 2008
chuyển đổi thất bại khi chuyển đổi giá trị varchar '+ @ dptId +' để loại dữ liệu int
Tôi nhận được DepartmentId
dưới dạng chuỗi như (1,3,5,77)
và đang chuyển đến quy trình được lưu trữ của tôi.
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);
Query tôi đã cố gắng:
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' không hoạt động như thế. Làm thế nào về 'departmentIt = @ dptId1 hoặc departmentIt = @ dptId2;'? –
Trước đó tôi đã sử dụng chuỗi truy vấn đơn giản như 'departmentIt in (1,3)' và các công trình của nó, bây giờ khi tôi sử dụng truy vấn tham số đang gặp lỗi. –
'departmentIt in (1,3)' works nhưng 'departmentIt in ('1,3')' không, vì nó chỉ là ** 1 ** value - một chuỗi chứ không phải 2 số. –