what about using replace and cast for xml instead left/right to split string?
declare @ExampleTable table
(
Name varchar(500),
CultureCode varchar(5)
)
insert into @ExampleTable values('Dit is een test', 'nl-NL')
insert into @ExampleTable values('This is a test', 'en-GB')
insert into @ExampleTable values('Ceci est un test', 'fr-FR')
insert into @ExampleTable values('Dies ist ein Test', 'de-DE')
declare @CultureCodes varchar(250)
set @CultureCodes = 'nl-NL,en-GB,fr-FR'
declare @xml xml
set @xml = cast('<culturecodes><culture>'+REPLACE(@CultureCodes,',','</culture><culture>')+'</culture></culturecodes>' as xml)
select
C.element.value('.','varchar(max)') as CultureCode_splited
,E.CultureCode
,E.name
from @xml.nodes('/culturecodes/culture')C(element)
inner join @ExampleTable E
on E.CultureCode = C.element.value('.','varchar(max)')
resultset seems like this...
CultureCode_splited CultureCode name
nl-NL nl-NL Dit is een test
en-GB en-GB This is a test
fr-FR fr-FR Ceci est un test