declare
@Input varchar(500)
,@doc xml
select
@Input = 'See:Dick:and:Jane:run'
,@doc = convert(xml, '<x v="' + replace(@Input, ':', '"/><x v="') + '"/>')
select
v = T.c.value('.', 'varchar(100)')
from
@doc.nodes('x/@v') T(c)
declare
@Input varchar(500)
,@s varchar(500)
,@doc xml
select
@Input = 'See Dick say to the A&P clerk, "Hello, there."'
,@s = replace(@Input, '&', '&')
,@doc = convert(xml, '<x><v>' + replace(@s, ' ', '</v></x><x><v>') + '</v></x>')
select
v = T.c.value('.', 'varchar(100)')
from
@doc.nodes('x/v') T(c)
create function dbo.Vectorize(@i hierarchyID)
returns @t table
(
position int identity(1,1) not null
,nodeValue int not null
) as begin
--declare @i hierarchyID = '/1/6/3/4/'
declare
@Input varchar(500) = @i.ToString()
,@s varchar(max)
,@doc xml
select
@Input = SUBSTRING(@input,2, len(@Input)-2)
,@s = replace(@Input, '&', '&')
,@doc = convert(xml, '<x><v>' + replace(@s, '/', '</v></x><x><v>') + '</v></x>')
insert into @t (
nodeValue
)
select
v = T.c.value('.', 'int')
from
@doc.nodes('x/v') T(c)
return
end