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

Wie wandelt man mit SQL vertikale Daten in horizontale Daten um?

Unabhängig von der Datenbank, die Sie verwenden, wird das Konzept dessen, was Sie erreichen möchten, als "Pivot-Tabelle" bezeichnet.

Hier ist ein Beispiel für mysql:http://en.wikibooks.org/wiki/MySQL/Pivot_table

Einige Datenbanken haben dafür eingebaute Funktionen, siehe die Links unten.

SQLServer:http://msdn.microsoft.com/de-de/library /ms177410.aspx

Oracle:http://www.dba-oracle.com/t_pivot_examples.htm

Sie können jederzeit einen Pivot von Hand erstellen. Wählen Sie einfach alle Aggregationen in einem Ergebnissatz aus und wählen Sie dann aus diesem Ergebnissatz aus. Beachten Sie, dass Sie in Ihrem Fall alle Namen mit concat (ich glaube, das ist group_concat in mysql) in eine Spalte einfügen können, da Sie nicht wissen können, wie viele Namen mit einer rel_id in Beziehung stehen.

pseudo-select für Ihren Fall (ich kenne mysql nicht):

select rel_id, group_concat(name) from item group by rel_id