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
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