sql >> Base de Datos >  >> RDS >> Mysql

MySQL - ¿Cómo desmontar columnas a filas?

Estás tratando de quitar el pivote los datos. MySQL no tiene una función de no pivotar, por lo que tendrá que usar UNION ALL consulta para convertir las columnas en filas:

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 con demostración .

Esto también se puede hacer usando un 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 con demostración