Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Daten in Zeilen bis Spalten vorhanden

Es gibt keinen PIVOT-Befehl in MySQL, aber es gibt Problemumgehungen - Pivot-Tabellengrundlagen:Zeilen zu Spalten... , MySQL-Pivot-Tabellen (Zeilen in Spalten umwandeln) .

Für Ihren Fall könnten Sie so etwas verwenden -

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. Sie können diese Abfrage von der gespeicherten Routine aus ausführen.