-- create table Temp
CREATE TABLE [dbo].[Temp](
[id] [int] IDENTITY(1,1) NOT NULL,
[names] [varchar](max) NULL
)
Insert into Temp(names)
values ('a,dfd,fder,reert,ytyrty,uytruyry,yrty,rtyrty,rtyrty,rtyrtyu56,756,75675,6dfg')
--bikin function conversi to xml
CREATE FUNCTION functToXML(@data varchar(max))
RETURNS xml
AS
begin
return cast( '<t>' + replace(@data, ',','</t><t>') + '</t>' as xml ) ;
end;
lalu coba panggil dan jalankan fungsi diatas dengan cara seperti ini
select *, dbo.functToXML(names) as xmlData from temp
hasilnya seperti ini
lalu bagaimana cara split data yang mengandung delimiter comma/koma?
jadi data yang sudah di convert ke xml di buat seakan-akan data tersebut di jadikan function {functA (t) } dan di join menggunakan cross apply
select a.id , b.data from (
select *, dbo.functToXML(names) as xmlData from temp
) a
cross apply (
select functA.t.value('.','varchar(50)') as data
from xmlData.nodes('t') as functA (t)
) b
dan hasil akhirnya seperti berikut :
No comments:
Post a Comment