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

SQL – jak transponovat?

MySQL nepodporuje syntaxi ANSI PIVOT/UNPIVOT, takže můžete použít:

  SELECT t.userid
         MAX(CASE WHEN t.fieldname = 'Username' THEN t.fieldvalue ELSE NULL END) AS Username,
         MAX(CASE WHEN t.fieldname = 'Password' THEN t.fieldvalue ELSE NULL END) AS Password,
         MAX(CASE WHEN t.fieldname = 'Email Address' THEN t.fieldvalue ELSE NULL END) AS Email
    FROM TABLE t
GROUP BY t.userid

Jak vidíte, příkazy CASE je třeba definovat pro každou hodnotu. Aby to bylo dynamické, musíte použít Syntaxe připraveného příkazu MySQL (dynamické SQL) .



  1. PostgreSQL dočasné tabulky

  2. Vše, co potřebujete vědět o standardech kódování pro dotazy SQL

  3. Psaní dotazu pro více tabulek v php

  4. Oracle - ORA-01489:výsledek zřetězení řetězců je příliš dlouhý