In this post let us see how we can easily handle passing comma separated values as input to the stored procedure. This kind of situation generally happens when we design report with multi-valued input parameter which will be passed as input to the stored procedure.

Code block

Sample data

This code block has the sample data:


USE AdventureWorks2012
CREATE TABLE Employee_Detail(Id VARCHAR(20),Name VARCHAR(60),Designation VARCHAR(80),Salary BIGINT)
INSERT Employee_Detail SELECT 1,'Sathya','VP','10000'
INSERT Employee_Detail SELECT 2,'Sunny','Manager','4000'
INSERT Employee_Detail SELECT 3,'Deepak','Senior Programmer','2500'
INSERT Employee_Detail SELECT 4,'Lexi','Programmer','1000'
INSERT Employee_Detail SELECT 5,'Sasha','Programmer','1000'

Stored procedure

The code block listed below has the sample stored procedure which accepts the input as comma separated values:

USE AdventureWorks2012
CREATE PROCEDURE Get_EmployeeDetails
@EmpIds VARCHAR(20)
SELECT * FROM Employee_Detail WHERE CHARINDEX(Id,@EmpIds) > 0

Execution Statement

This code block has the sample execution statements of that stored procedure:

EXEC Get_EmployeeDetails '1,2'
EXEC Get_EmployeeDetails '3,4,5'
EXEC Get_EmployeeDetails ',2,'


The following screenshots will show an example of passing multivalued parameter in SSRS as input to the stored procedure. In SSRS, the stored procedure Get_EmployeeDetails is the dataset for table and the dataset for multi-valued parameter is this query:

SELECT Id FROM Employee_Detail

So to pass multi-valued parameter in SSRS as input to a stored procedure, we need to make use of JOIN function in SSRS and then split using split function in SQL Server. In this post using CHARINDEX inside stored procedure, we can easily handle comma separated input to a stored procedure.

See Also