Search This Blog

Thursday, July 15, 2010

How to break the space separated values in SQL Server?

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