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

SQL:Wybierz kolumnę jako

Jeśli masz ustaloną liczbę identyfikatorów języków, możesz to zrobić w następujący sposób:

select id,
       max(case when LanguageId = 1 then text end) as "1",
       max(case when LanguageId = 2 then text end) as "2",
       max(case when LanguageId = 3 then text end) as "3"
from t
group by id;

Jeśli nie znasz wcześniej identyfikatorów języka, musisz użyć dynamicznego SQL, aby skonstruować zapytanie, a następnie przygotować je i wykonać.

Jeśli identyfikator języka jest dynamiczny:

select @s = concat('select id',
                   group_concat(concat(', max(case when LanguageId = ',
                                       LanguageId,
                                       ' then text end) as "',
                                       LanguageId, '"'
                                      )
                               ),
                   ' from t group by id'
                  )
from (select distinct LanguageId from t) t;

PREPARE stmt1 FROM @s;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Przechowuj czas między rekordami

  2. Mysql:Przytnij wszystkie pola w bazie danych

  3. laravel zwraca ciąg json na lokalnej maszynie, ale liczbę całkowitą na instancji Elastic Beanstalk

  4. Jak wykonać kopię zapasową/wyeksportować podłączonego pliku Database.sql Database.sql w laravel?

  5. Wybierz menu opcji odczytane z bazy danych i użyj jego wartości