Quantcast
Channel: CodeFari
Viewing all articles
Browse latest Browse all 265

Turning a Comma Separated string into individual rows in SQL Server

$
0
0


Problem: A column have string comma separated value as below.










We need result like as below

















Answer: See following query it may help you..
CREATETABLE#TMP(IDINT,NAMEVARCHAR(MAX))
INSERT#TMPSELECT 1,'Dilip,Anil,Raj'
INSERT#TMPSELECT 2,'Mahesh,Umesh'
INSERT#TMPSELECT 3,'Rupesh,Uma,Swati'
INSERT#TMPSELECT 4,''
SELECT*FROM#TMP
;WITHTMP(ID,ITEMS,NAME)AS (
SELECTID,LEFT(NAME,CHARINDEX(',',NAME+',')-1),
    STUFF(NAME, 1,CHARINDEX(',',NAME+','),'')
FROM#TMP
UNIONALL
SELECTID,LEFT(NAME,CHARINDEX(',',NAME+',')-1),
    STUFF(NAME, 1,CHARINDEX(',',NAME+','),'')
FROMTMP
WHERENAME>''
)
SELECTID,ITEMS
FROMTMP
ORDERBYID

DROPTABLE#TMP

It will return result as above given table pic....

Same as you can use given below query. It will also return same result as above


CREATETABLE#TMP(IDINT,NAMEVARCHAR(MAX))
INSERT#TMPSELECT 1,'Dilip,Anil,Raj'
INSERT#TMPSELECT 2,'Mahesh,Umesh'
INSERT#TMPSELECT 3,'Rupesh,Uma,Swati'
INSERT#TMPSELECT 4,''
SELECT*FROM#TMP

SELECTA.id, 
     Split.a.value('.','VARCHAR(100)')ASData 
 FROM 
 (
     SELECTid, 
         CAST('<M>'+REPLACE(NAME,',','</M><M>')+'</M>'ASXML)ASData 
     FROM  #TMP
 )ASACROSSAPPLYData.nodes('/M')ASSplit(a);

DROPTABLE#TMP
 


Viewing all articles
Browse latest Browse all 265

Trending Articles