Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Transformação de linha em coluna no MySQL


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.