sql >> Database >  >> RDS >> Mysql

mysql-query om rijgegevens dynamisch naar kolommen te converteren

U kunt eenvoudigweg geen statische SQL-instructie hebben die een variabel aantal kolommen retourneert. U moet zo'n verklaring opstellen telkens wanneer het aantal verschillende districten verandert. Om dat te doen, voer je eerst een

SELECT DISTINCT District FROM district_details;

Dit geeft je de lijst met districten waar er details zijn. Vervolgens bouwt u een SQL-instructie die herhaalt over het vorige resultaat (pseudocode)

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;"

En voer die query uit. U moet dan in uw code de verwerking van het variabele aantal kolommen afhandelen



  1. Waarom geen vensterfuncties in waar-clausules?

  2. Hoe een HQL JOIN-query te schrijven voor de geselecteerde kolommen van meerdere tabellen met Constructor In The Select Clause

  3. hoe een afbeelding van een tekenbaar te krijgen op basis van hun namen in de sqlite-database en deze vervolgens weer te geven in de lijstweergave

  4. Bestel varchar string als numeriek