Ecco una comoda funzione che trasforma una stringa in una tabella, ‘splittandola’ utilizzando un delimitatore:
CREATE function [dbo].[Split] ( @string nvarchar(4000), @delimiter nvarchar(10) ) returns @table table ( [Value] nvarchar(4000) ) begin declare @nextString nvarchar(4000) declare @pos int, @nextPos int declare @commaCheck nvarchar(1) set @nextString = '' set @commaCheck = right(@string, 1) set @string = @string + @delimiter set @pos = charindex(@delimiter, @string) set @nextPos = 1 while (@pos <> 0) begin set @nextString = substring(@string, 1, @pos - 1) insert into @table ([Value]) values (@nextString) set @string = substring(@string, @pos + 1, len(@string)) set @nextPos = @pos set @pos = charindex(@delimiter, @string) end return