fn_MVParam .. altra correzione
Dopo aver incontrato in passato problemi con i blank, stavolta è il turno dei caratteri speciali quali Tab, Carriege return, Line feed. Ho apportato una lieve modifica alla funzione:
create function [dbo].[fn_MVParam]
(@repparam nvarchar(4000), @delim char(1)= ',')
returns
@values table (param nvarchar(4000))as
begin
declare @chrind int
declare @piece nvarchar(4000)
select @chrind = 1
while @chrind > 0
begin
select @chrind = charindex(@delim,@repparam)
if @chrind > 0
select @piece = left(@repparam,@chrind - 1)
else
select @piece = @repparam
set @piece = replace(@piece, char(13), ''); -- carriage return
set @piece = replace(@piece, char(10), ''); -- line feed
set @piece = replace(@piece, char(9), ''); -- tab
set @piece = ltrim ( rtrim (@piece) ); -- blank
insert @values(param) values (@piece)
select @repparam = right(@repparam,len(@repparam) - @chrind)
if len(@repparam) = 0 break
end
return
/*
HOW TO USE IT:
select
nome_colonna = param
from
dbo.[fn_MVParam] ('19, 20, 21,22, xyz', ',')
order by
param desc
*/
end
GO