Declare @vTable Table(id int,val varchar(100))
Insert into @vTable Values (1,'Jeni Jeni1 Jeni123') Insert into @vTable Values (2,'Jeni1 Jeni2 jeni3')
Now if you want to break the space separated values in the above table as;ID Val
1 Jeni
1 Jeni1
1 Jeni123
2 Jeni1
2 Jeni2
2 Jeni3
Run following query in Sqlserver and get result.
Declare @vTable Table(id int,val varchar(100))
Insert into @vTable Values (1,'Jeni Jeni1 Jeni123') Insert into @vTable Values (2,'Jeni1 Jeni2 jeni3')
;with wcte (id,val,strpos) as
(
Select id,substring(val,0,case when charindex(' ',val,0) = 0 then Len(val) else charindex(' ',val,0) + 1 end) as val
,charindex(' ',val,0) + 1 strpos from @vTable
Union all
Select b.id,substring(b.val,strpos,case when charindex(' ',b.val,strpos) = 0 then Len(b.val) else charindex(' ',b.val,strpos) - strpos end) as val
,charindex(' ',b.val,strpos) + 1 strpos
from @vTable b
Inner Join wcte on wcte.id = b.ID
and wcte.strpos <> 1
)Select id,Val from wcte order by id
No comments:
Post a Comment