Function and procedure definition
Create a Table valued function in SQL Functions as below
Step 1
CREATE FUNCTION [dbo].[FnSplit]
(
@List nvarchar(2000),
@SplitOn nvarchar(5)
)
RETURNS @RtnValue table
(
Id int identity(1,1),
Value nvarchar(100)
)
AS
BEGIN
While (Charindex(@SplitOn,@List)>0)
Begin
Insert Into @RtnValue (value)
Select
Value = ltrim(rtrim(Substring(@List,1,Charindex(@SplitOn,@List)-1)))
Set @List = Substring(@List,Charindex(@SplitOn,@List)+len(@SplitOn),len(@List))
End
Insert Into @RtnValue (Value)
Select Value = ltrim(rtrim(@List))
Return
END
CREATE proc ProcedureName @lists varchar(2000)
as
DECLARE @SQL NVARCHAR(4000) = 'SELECT Table_name.* FROM Table_name WHERE '
SELECT @SQL=@SQL+
STUFF((SELECT filter+'' FROM (SELECT DISTINCT 'OR NUM LIKE ''%'+value+'%''' AS filter FROM dbo.FNSPLIT(@lists,','))T FOR XML PATH('')),1,2,'')
EXEC SP_EXECUTESQL @SQL
GO
I have 2 ssrs parameters text boxes
1. Accepts a list of values
2.Other box shows the result.
The data is always in the following varchar format- 'xyz123456' or 'xyz76859-12345'
With the above function we split and pass the data to sp which retrieves the result and shows to the user
E.G
Right now the o/p
when we pass single value -xyz123456 we get xyz123456
when we pass xyz we get a all the available xyz values .
When we pass a comma separated list continous -(xyz123456 ,xyz76859-12345 )we get the xyz123456 ,xyz76859-12345 output shown in drop down box
However when we pass comma separated list (because of the muti-value parameters which allows newline ) text box
xyz123456, (new line for illustration)
xyz76859-12345(newline for illustration)
the o/p
we get all other values including the ones which we pass e,g .
xyz123456
xyz76859-12345
xyz563456
xyz333456
We are trimming the user prompt parameter- VarCode which we are passing to the dataset which calls the sp using the
=ltrim(rTrim(Join(Parameters!VarCode.Value,","))) but even then we are facing unwanted o/p?