Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Zapytanie mysql do dynamicznej konwersji danych wierszy na kolumny

Po prostu nie można mieć statycznej instrukcji SQL zwracającej zmienną liczbę kolumn. Takie zestawienie trzeba budować za każdym razem, gdy zmienia się liczba różnych dzielnic. Aby to zrobić, najpierw wykonujesz

SELECT DISTINCT District FROM district_details;

To da ci listę dzielnic, w których znajdują się szczegóły. Następnie budujesz instrukcję SQL, iterując poprzedni wynik (pseudokod)

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

I wykonaj to zapytanie. Będziesz wtedy musiał obsłużyć w swoim kodzie przetwarzanie zmiennej liczby kolumn



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać warunku if/else w wyborze w mysql

  2. Czy w standardowym języku SQL zdefiniowano „Gdzie jest” z wieloma kolumnami?

  3. Znaki niełacińskie i ouch

  4. Optymalizacja zapytań dotyczących użycia indeksu MySQL

  5. Jak przekazać warunki do zapytania mySql?