quote: Concatenation maybe?
No. PIVOTationDECLARE @sample TABLE( [ID] CHAR(1), State CHAR(2), City varchar(15))INSERT INTO @sampleSELECT 'A', 'MA', 'Boston' UNION ALLSELECT 'A', 'NY', 'New York City' UNION ALLSELECT 'A', 'OK', 'Tulsa' UNION ALLSELECT 'B', 'MA', 'Boston' UNION ALLSELECT 'B', 'FL', 'Miami' UNION ALLSELECT 'C', 'GA', 'Atlanta';WITH sample_data ([ID], State, City, SeqNo) AS( SELECT [ID], State, City, SeqNo = row_number() OVER (PARTITION BY [ID] ORDER BY [ID], State) FROM @sample) SELECT [ID] = coalesce(s.[ID], c.[ID]), state_1, state_2, state_3, city_1, city_2, city_3FROM( SELECT [ID], state_1 = p.[1], state_2 = p.[2], state_3 = p.[3] FROM ( SELECT [ID], SeqNo, State FROM sample_data ) s pivot ( MAX(s.State) FOR s.SeqNo IN ([1], [2], [3]) ) p) sFULL OUTER JOIN( SELECT [ID], city_1 = p.[1], city_2 = p.[2], city_3 = p.[3] FROM ( SELECT [ID], SeqNo, City FROM sample_data ) c pivot ( MAX(c.City) FOR c.SeqNo IN ([1], [2], [3]) ) p) c ON s.[ID] = c.[ID]/*ID state_1 state_2 state_3 city_1 city_2 city_3 ---- ------- ------- ------- --------------- --------------- --------------- A MA NY OK Boston New York City TulsaB FL MA NULL Miami Boston NULLC GA NULL NULL Atlanta NULL NULL*/ KH[spoiler]Time is always against us[/spoiler] |