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

SQL:Vælg kolonne som

Hvis du har et fast antal sprog-id'er, kan du gøre dette som:

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;

Hvis du ikke kender sprog-id'erne på forhånd, skal du bruge dynamisk SQL til at konstruere forespørgslen og derefter forberede og udføre den.

Hvis sprog-id er dynamisk:

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. Trin for trin R12.2.6 EBS-installation på Virtual Box

  2. Sammensæt rækker i CLOB

  3. SQL Server:Sådan finder du alle localdb-instansnavne

  4. Opdater flere tabeller i en enkelt forespørgsel i mysql