Here is the Solution to the above Question using CASE-WHEN Statement and Row_Number Windows Function to Pivot the above data.
With Result as
(
SELECT *, ROW_NUMBER () OVER (PARTITION BY Occupation ORDER BY name) AS rn
FROM employee
)
SELECT
MAX(CASE WHEN Occupation = 'Doctor' THEN Name END) as Doctor,
MAX(CASE WHEN Occupation = 'Professor' THEN Name END) as Professor,
MAX(CASE WHEN Occupation = 'Singer' THEN Name END) as Singer,
MAX(CASE WHEN Occupation = 'Actor' THEN Name END) as Actor
FROM Result
GROUP BY rn
ORDER BY Doctor, Professor,Singer, Actor ;