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

Transformace řádků na sloupce v MySQL

Říká se tomu kontingenční tabulka. Je to trochu trapné vyrábět:

SELECT ID, 
 MAX(CASE Type WHEN 202 THEN Degignation END) AS `202`
 MAX(CASE Type WHEN 234 THEN Degignation END) AS `234`
 MAX(CASE Type WHEN 239 THEN Degignation END) AS `239`
 Email
FROM mytable
GROUP BY ID, Email

Všimněte si, že musíte znát všechny odlišné Type hodnoty, než napíšete dotaz. SQL neumožňuje sadě výsledků dynamicky přidávat další sloupce, když zjišťuje datové hodnoty v tabulce. Sloupce musí být opraveny v době přípravy dotazu.



  1. tisk počátečního a koncového data v jednom řádku pro souvislé nebo překrývající se časové rozsahy v Oracle SQL

  2. Syntaxe SQL TRUNCATE – uvedena v DBMS

  3. Umění izolovat závislosti a data v testování databázových jednotek

  4. MariaDB SESSION_USER() Vysvětleno