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

Dados presentes em linhas para colunas


Não há comando PIVOT no MySQL, mas existem soluções alternativas - Princípios básicos da tabela dinâmica:linhas para colunas... , Tabelas dinâmicas MySQL (transformar linhas em colunas) .

Para o seu caso, você pode usar algo assim -
SELECT AppNo,
  MAX(IF(code = 1, Location, NULL)) Location,
  MAX(IF(code = 1, Department, NULL)) Department,
  1 Code1,
  MAX(IF(code = 2, Location, NULL)) Location,
  MAX(IF(code = 2, Department, NULL)) Department,
  2 Code2,
  MAX(IF(code = 3, Location, NULL)) Location,
  MAX(IF(code = 3, Department, NULL)) Department,
  3 Code3,
  MAX(IF(code = 4, Location, NULL)) Location,
  MAX(IF(code = 4, Department, NULL)) Department,
  4 Code4,
  MAX(IF(code = 5, Location, NULL)) Location,
  MAX(IF(code = 5, Department, NULL)) Department,
  5 Code5
FROM <table name>
GROUP BY AppNo

P.S. Você pode executar esta consulta a partir da rotina armazenada.