I saw many PIVOT questions for one column, each of which was more complex than the others, however I could not find anything similar to what I needed.
Honestly, I donβt even know if the summary information will help me in this situation.
Let's say I have this data in my source table:
SELECT '1' as 'RowId', 'RandomName1' as 'First', 'RandomLast1' as 'Last' UNION SELECT '2' as 'RowId', 'RandomName2' as 'First', 'RandomLast2' as 'Last' UNION SELECT '3' as 'RowId', 'RandomName3' as 'First', 'RandomLast3' as 'Last' UNION SELECT '4' as 'RowId', 'RandomName4' as 'First', 'RandomLast4' as 'Last' UNION SELECT '5' as 'RowId', 'RandomName5' as 'First', 'RandomLast5' as 'Last'
Maximum 5 lines with first and last name. The value of the First and Last columns will be random.
RowId First Last ----- ----------- ----------- 1 RandomName1 RandomLast1 2 RandomName2 RandomLast2 3 RandomName3 RandomLast3 4 RandomName4 RandomLast4 5 RandomName5 RandomLast5
I tried to collapse this data like this:
First1 Last1 First2 Last2 First3 Last3 First4 Last4 First5 Last5 ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- RandomName1 RandomLast1 RandomName2 RandomLast2 RandomName3 RandomLast3 RandomName4 RandomLast4 RandomName5 RandomLast5
For example: I have no problem if the First5 and Last5 columns are NULL because there are only 4 rows.
First1 Last1 First2 Last2 First3 Last3 First4 Last4 First5 Last5 ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- RandomName1 RandomLast1 RandomName2 RandomLast2 RandomName3 RandomLast3 RandomName4 RandomLast4 NULL NULL
Can anybody help me? Thanks.
A solution based on Sheela KR answers:
SELECT MAX(First1) as 'First1', MAX(Last1) as 'Last1', MAX(First2) as 'First2', MAX(Last2) as 'Last2', MAX(First3) as 'First3', MAX(Last3) as 'Last3', MAX(First4) as 'First4', MAX(Last4) as 'Last4', MAX(First5) as 'First5', MAX(Last5) as 'Last5' FROM ( SELECT CASE WHEN RowId = 1 THEN [First] END as 'First1', CASE WHEN RowId = 1 THEN [Last] END as 'Last1', CASE WHEN RowId = 2 THEN [First] END as 'First2', CASE WHEN RowId = 2 THEN [Last] END as 'Last2', CASE WHEN RowId = 3 THEN [First] END as 'First3', CASE WHEN RowId = 3 THEN [Last] END as 'Last3', CASE WHEN RowId = 4 THEN [First] END as 'First4', CASE WHEN RowId = 4 THEN [Last] END as 'Last4', CASE WHEN RowId = 5 THEN [First] END as 'First5', CASE WHEN RowId = 5 THEN [Last] END as 'Last5' FROM ( SELECT '1' as 'RowId', 'RandomName1' as 'First', 'RandomLast1' as 'Last' UNION SELECT '2' as 'RowId', 'RandomName2' as 'First', 'RandomLast2' as 'Last' UNION SELECT '3' as 'RowId', 'RandomName3' as 'First', 'RandomLast3' as 'Last' UNION SELECT '4' as 'RowId', 'RandomName4' as 'First', 'RandomLast4' as 'Last'