sql >> Databasteknik >  >> RDS >> Mysql

SQL - Hur transponerar man?

MySQL stöder inte ANSI PIVOT/UNPIVOT-syntax, så det låter dig använda:

  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 måste CASE-satserna definieras per värde. För att göra detta dynamiskt måste du använda MySQL:s Prepared Statement (dynamisk SQL) syntax .



  1. Vad är skillnaden mellan explicita och implicita markörer i Oracle?

  2. 4 sätt att lista alla tabeller i en MariaDB-databas

  3. Hur man kontrollerar databasen på en icke-rotad Android-enhet

  4. Hur man skapar en tabell i SQL Server med hjälp av en fråga