Isso é chamado de tabela dinâmica. É meio estranho produzir:
SELECT ID,
MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
Email
FROM mytable
GROUP BY ID, Email
Observe que você deve conhecer todos os
Type
distintos valores antes de escrever a consulta. O SQL não permite que um conjunto de resultados adicione mais colunas dinamicamente à medida que descobre valores de dados na tabela. As colunas devem ser corrigidas no tempo de preparação da consulta.