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

MySQL - Como desdinamizar colunas para linhas?


Você está tentando desarticular os dados. MySQL não tem uma função unpivot, então você terá que usar um UNION ALL query para converter as colunas em linhas:
select id, 'a' col, a value
from yourtable
union all
select id, 'b' col, b value
from yourtable
union all
select id, 'c' col, c value
from yourtable

Consulte SQL Fiddle with Demo .

Isso também pode ser feito usando um CROSS JOIN :
select t.id,
  c.col,
  case c.col
    when 'a' then a
    when 'b' then b
    when 'c' then c
  end as data
from yourtable t
cross join
(
  select 'a' as col
  union all select 'b'
  union all select 'c'
) c

Consulte SQL Fiddle with Demo