Mysql
 sql >> Database >  >> RDS >> Mysql

Trasformazione da riga a colonna in MySQL

Questa è chiamata tabella pivot. È un po' imbarazzante da produrre:

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

Nota che devi conoscere tutti i distinti Type valori prima di scrivere la query. SQL non consente a un set di risultati di aggiungere più colonne in modo dinamico poiché rileva i valori dei dati nella tabella. Le colonne devono essere corrette al momento della preparazione della query.