sql >> Database teknologi >  >> RDS >> Mysql

SQL - Hvordan transponeres?

MySQL understøtter ikke ANSI PIVOT/UNPIVOT syntaks, så du kan bruge:

  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

Som du kan se, skal CASE-sætningerne defineres pr. værdi. For at gøre dette dynamisk, skal du bruge MySQL's Prepared Statement (dynamisk SQL) syntaks .



  1. Implementering af fuldtekstsøgning i SQL Server 2016 for begyndere

  2. Brug af PostgreSQL-replikeringspladser

  3. Udførelse af dataændringsrevision ved hjælp af tidsmæssig tabel

  4. Hvordan skriver man UTF-8-tegn ved hjælp af bulkinsert i SQL Server?