sql >> Databasteknik >  >> RDS >> Mysql

Data finns i rader till kolumner

Det finns inget PIVOT-kommando i MySQL, men det finns lösningar - grunderna för pivottabellen:rader till kolumner... , MySQL pivottabeller (omvandla rader till kolumner) .

För ditt fall kan du använda något i stil med detta -

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. Du kan köra den här frågan från den lagrade rutinen.



  1. Kan inte uppdatera rad i Sqlite i Android men ger inget fel

  2. Hur man validerar användarens inloggningsuppgifter i Android med PHP, MySql med hjälp av json

  3. Använder datum i en kontrollbegränsning, Oracle

  4. PostgreSQL accepterar inte kolumnalias i WHERE-satsen