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

Dati presenti da righe a colonne

Non esiste un comando PIVOT in MySQL, ma ci sono soluzioni alternative:Nozioni di base sulla tabella pivot:righe per colonne... , Tabelle pivot MySQL (trasforma le righe in colonne) .

Per il tuo caso potresti usare qualcosa del genere -

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

PS Puoi eseguire questa query dalla routine memorizzata.