Here is a way you can pass a CSV to a stored proc, convert it to XML and use it in a join in your select.
Function to convert CSV to XML:
create function udf_CsvToXML(@Csv as varchar(8000),@Delim as varchar(15)=',')
returns xml
as
begin
declare @xml as xml = CAST('<XML>'+('<X>'+REPLACE(@Csv,@Delim,'</X><X>')+'</X></XML>') AS XML)
return @xml
end
Put the following in a stored proc, @Titles being a parameter instead of a declare:
declare @Titles varchar(8000) = NULL
SET @Titles = ISNULL(@Titles, 'ALL')
DECLARE @TitlesXML as XML
if upper(@Titles) = 'ALL'
SET @TitlesXML = (select distinct Title as X from LegalConfiguration for xml path(''), root('XML'))
else
SET @TitlesXML = dbo.udf_CsvToXML(@Titles,',')
select Title
from MonthlyTitlePerformance p
join (SELECT N.value('.[1]', 'varchar(25)') as value FROM @TitlesXML.nodes('/XML/X') as T(N)) tt
on tt.value = p.Title