Best of course would be to have the values not in one field, but in a linked table.
Second best would be to use a split function (several options there in SQL Server) and use that to emulate the linked table, so you could still join on that.
A third way would be, not to generate all permutations (lots of overhead there), but to search with a mask on on the different values
e.g.
where ',' + [YourDataBaseField] + ',' like '%,A,%'
AND ',' + [YourDataBaseField] + ',' like '%,C,%'
--etc
The ',' +[YourDataBaseField] + ','
construction is to prevent having to use 3 statements, one for the start of the string, one for internal values and one for the end value.
The above is assuming %
is the wildcard character.
Splitting the input string to generate the sql should be fairly straight forward.