SELECT SUBSTRING(Field1,1,CHARINDEX(CHAR(32), Field1)-1) AS 'BeginningField', SUBSTRING(Field1, CHARINDEX(CHAR(32), Field1)+1, CHARINDEX(CHAR(32), Field1, CHARINDEX(CHAR(32), Field1)+1) - CHARINDEX(CHAR(32), Field1)-1 ) AS 'MiddleField', SUBSTRING(Field1, CHARINDEX(CHAR(32), Field1, CHARINDEX(CHAR(32), Field1)+1) + 1, LEN(Field1) - CHARINDEX(CHAR(32), CHARINDEX(CHAR(32), Field1, CHARINDEX(CHAR(32), Field1)+1)) ) AS 'EndField' INTO #TempTable FROM Table1 CREATE TABLE #TempFinish ( BeginningField varchar(20), MiddleField varchar(20), EndField varchar(20) ) DECLARE @BeginningField varchar(20), @MiddleField varchar(20), @EndField varchar(20) DECLARE CursorWork SCROLL CURSOR FOR SELECT BeginningField, MiddleField, EndField FROM #TempTable ORDER BY EndField FOR READ ONLY OPEN CursorWork FETCH NEXT FROM CursorWork INTO @BeginningField, @MiddleField, @EndField WHILE (@@FETCH_STATUS) <> -1 BEGIN IF (@@FETCH_STATUS) <> -2 BEGIN IF EXISTS (SELECT * FROM #TempFinish WHERE BeginningField = @BeginningField AND MiddleField = @MiddleField) BEGIN UPDATE #TempFinish SET EndField = EndField + ',' + @EndField WHERE BeginningField = @BeginningField AND MiddleField = @MiddleField END ELSE BEGIN INSERT INTO #TempFinish SELECT @BeginningField, @MiddleField, @EndField END END FETCH NEXT FROM CursorWork INTO @BeginningField, @MiddleField, @EndField END /* Clean up */ CLOSE CursorWork DEALLOCATE CursorWork>Hi,