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

SQL - Wie wird transponiert?

MySQL unterstützt keine ANSI-PIVOT/UNPIVOT-Syntax, sodass Sie Folgendes verwenden müssen:

  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

Wie Sie sehen können, müssen die CASE-Anweisungen pro Wert definiert werden. Um dies dynamisch zu machen, müssten Sie Vorbereitete Anweisung (dynamisches SQL) von MySQL .