See illustration belowCREATE TABLE #Tab(Var1 varchar(20),val1 varchar(20),var2 varchar(20),val2 varchar(20),var3 varchar(20),val3 varchar(20),var4 varchar(20),val4 varchar(20),var5 varchar(20),val5 varchar(20))INSERT INTO #Tab(Var1,val1,var2,val2,var3,val3,var4,val4,var5,val5)VALUES ('Color','Red','Size',4,'Height','2inch',NULL,NULL,NULL,NULL),('Color','Red','Size',5,'Height','2inch',NULL,NULL,'Length','1 cm'),('Color','Red','Size',4,'Height','3inch',NULL,NULL,NULL,''),('Color','Black','Size',6,'Height','1inch',NULL,NULL,NULL,NULL)SELECT DISTINCT Cat,[Var] INTo #VarFROm (SELECT Var1,var2,var3,var4,var5 FROM #Tab)tUNPIVOT (Cat FOR [Var] IN (Var1,var2,var3,var4,var5))u SELECT DISTINCT Cat,Val INTO #ValFROm (SELECT val1,val2,val3,val4,val5 FROM #Tab)tUNPIVOT (Cat FOR Val IN (val1,val2,val3,val4,val5))u SELECT vr.Cat AS Var,STUFF((SELECT ',' + vl.Cat FROM #Val vl WHERE REPLACE(vr.Var,'var','') = REPLACE(Val,'Val','') FOR XML PATH('')),1,1,'') AS ValFROM #Var vrORDER BY Var DROP TABLE #VarDROP TABLE #valDROP TABLE #taboutput-----------------------------Var Val-----------------------------Color Black,RedHeight 1inch,2inch,3inchLength ,1 cmSize 4,5,6
------------------------------------------------------------------------------------------------------SQL Server MVPhttp://visakhm.blogspot.com/https://www.facebook.com/VmBlogs