Reputation: 311
I have a column in a table with sample data as follows:
ServiceTypeIDs
1,9
4
In my Where clause I use the following to search on it:
WHERE
( @ServiceTypes is null or
charindex(','+cast(SEP.ServiceTypeIDs as varchar(255))+',',
','+@ServiceTypes+',') > 0)))
If my param @ServieTypes
equals '1,9'
, then I get results, but when it's @ServiceTypes = '1'
or just '9'
, then I don't recieve anything back. I'm stuck and tried the above.
exact column looks like below
7
8
2
5
4
7
7
7
7
7
7
1
7
null
6,7
7
6
1
7
null
7
7
7
7
7
8
7
6
1
1
1
6
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
7
1
7
7
1
7
8
7
1
1
2
1
null
7
7
7
7
7
7
7
7
7
7
7
7
7
8
6
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
1
7
7
1
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
1
1
1
1
1,2
1
1
1,2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1,2
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
null
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
6
7
7
1
8
7
7
7
7
7
7
7
7
7
7
7
2
7
null
null
1
1
1
1
1
7
7
7
1,2
6
7
1
2
1
1
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
5
5
1
1
1
7
7
7
1
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
3
1
9
9
9
9
null
9
1,2
9
9
9
8,9
1,9
1,9
1,9
2,9
1,9
1,9
1,9
1,8
1,9
1,9
9
9
9
9
5
4
3
1
null
1,2,3
6
9
9
9
8,9
9
9
9
1,9
Upvotes: 0
Views: 1906
Reputation: 71939
Your arguments to CHARINDEX
are reversed. Use this instead:
CHARINDEX(','+@ServiceTypes+',', ','+CAST(SEP.ServiceTypeIDs AS VARCHAR(255))+',') > 0
It should be noted that your actual problem is a poor database design. You should never store lists as strings like that, use a separate table instead, with one row per association.
Upvotes: 1