execute this, which creates a table function that parses a comma delimited value into a table, join with that table
ALTER FUNCTION [dbo].[fn_MultiValueParameter]
(@Parameter NVARCHAR(MAX))
RETURNS @Table TABLE (Value NVARCHAR(250))
AS
BEGIN
WHILE CHARINDEX(',',@Parameter) > 0
BEGIN
INSERT @Table VALUES (LEFT(@Parameter,charindex(',',@Parameter)-1))
set @Parameter = LTRIM(Replace(@Parameter,left (@Parameter,charindex(',',@Parameter)),''))
END
INSERT INTO @Table VALUES (@Parameter)
RETURN
END
ALTER PROCEDURE [dbo].[SpGetAllSelectedDepartments]
@LocationId INT,
@DepartmentIds VARCHAR(50)
AS
BEGIN
IF @LocationId = 0
BEGIN
SELECT SdeptId, SdeptDepartmentName, SdeptSlocId
FROM SgDepartment INNER JOIN fn_MultiValueParameter( @DepartmentIds )
ON SdeptId = Value
WHERE SdeptStatus = 1
ORDER BY SdeptDepartmentName;
END
ELSE
BEGIN
SELECT SdeptId, SdeptDepartmentName, SdeptSlocId
FROM SgDepartment INNER JOIN fn_MultiValueParameter( @DepartmentIds )
ON SdeptId = Value
WHERE SdeptStatus = 1 AND
SdeptSlocId = @LocationId
ORDER BY SdeptDepartmentName;
END
END