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

mysql-forespørgsel til dynamisk at konvertere rækkedata til kolonner

Du kan simpelthen ikke have en statisk SQL-sætning, der returnerer et variabelt antal kolonner. Du skal bygge en sådan erklæring hver gang antallet af forskellige distrikter ændres. For at gøre det skal du først udføre en

SELECT DISTINCT District FROM district_details;

Dette vil give dig listen over distrikter, hvor der er detaljer. Du bygger derefter en SQL-sætning, der itererer over det forrige resultat (pseudokode)

statement = "SELECT name "

For each row returned in d = SELECT DISTINCT District FROM district_details 
    statement = statement & ", SUM(IF(District=""" & d.District & """,1 ,0)) AS """ & d.District & """" 

statement = statement & " FROM district_details GROUP BY name;"

Og udfør den forespørgsel. Du bliver så nødt til at håndtere behandlingen af ​​det variable antal kolonner i din kode



  1. Oracle som løsning af muterende tabeller

  2. Overførsel af datatabel som parameter til lagrede procedurer

  3. Sådan replikeres PostgreSQL-data til eksterne websteder

  4. Kan ikke installere pg gem på Mountain Lion