В дополнение к решению Marc_s вы также можете использовать PIVOT для достижения этой цели:
SELECT [Name], [home], [work], [mob]
FROM
(
SELECT [Name], phonetype, phoneno
FROM Customer c join ContactDetail cd on c.Id = cd.id
) t
PIVOT
(
MIN(PhoneNo) FOR [phonetype] IN ([home], [work], [mob])
) AS pvt
ORDER BY pvt.[Name]