sql >> Database >  >> RDS >> Mysql

SQL - Hoe te transponeren?

MySQL ondersteunt de ANSI PIVOT/UNPIVOT-syntaxis niet, dus u kunt het volgende gebruiken:

  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

Zoals je kunt zien, moeten de CASE-statements per waarde worden gedefinieerd. Om dit dynamisch te maken, moet u MySQL's Prepared Statement (dynamische SQL) syntaxis .



  1. Waarom duurt een Microsoft SQL Server 2012-query minuten via JDBC 4.0, maar seconden in Management Studio?

  2. Hoe te ontsnappen aan één citaat, speciale tekens in MySQL

  3. MOD() Functie in Oracle

  4. Rails 3.1:Postgres opvragen voor records binnen een tijdsbereik