sql >> Databáze >  >> RDS >> Mysql

Údaje jsou uvedeny v řádcích až sloupcích

V MySQL není žádný příkaz PIVOT, ale existují zástupná řešení – Základy kontingenční tabulky:řádky do sloupce... , Kontingenční tabulky MySQL (transformace řádků na sloupce) .

Pro váš případ můžete použít něco takového -

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. Tento dotaz můžete spustit z uložené rutiny.



  1. Creative využívá engine blackhole

  2. MySQL - SELECT WHERE pole IN (poddotaz) - Extrémně pomalé proč?

  3. Hromadné vkládání MySQL přes PHP

  4. Připojení k Mysql pomocí Slick 3.0 - Žádné uživatelské jméno, žádné heslo a falešný ovladač se nerovná chybě