sql >> Database teknologi >  >> RDS >> Oracle

Vælg samme kolonne for forskellige værdier i en anden kolonne

Ikke testet, da du ikke har leveret testdata (fra tabel AC_XXXX ):
(ved hjælp af Oracle 11 PIVOT-klausul)

select *
from   ( select emp_id, seq_nr, name
         from   ac_xxxx
         where  emp_id = '874830' )
pivot ( max(name) for seq_nr in (3 as seq3name, 4 as seq4name, 21 as seq21name,
                      22 as seq22name, 23 as seq23name, 24 as seq24name, 25 as seq25name)
      )
;

For Oracle 10 eller tidligere blev pivotering udført "i hånden", som sådan:

select max(emp_id) as emp_id,               --  Corrected based on comment from OP
       max(case when seq_nr = 3 then name end) as seq3name,
       max(case when seq_nr = 4 then name end) as seq4name,
    --   etc. (similar expressions for the other seq_nr)
from   ac_xxxx
where  emp_id = '874830'
;

Eller emp_id behøver ikke at være inden for max() hvis vi tilføjer group by emp_id - som så vil fungere selv uden WHERE-sætningen, for et andet, men relateret spørgsmål.




  1. Tjek den aktuelle FOREIGN_KEY_CHECKS værdi

  2. ORACLE 12.2.01 udvælgelse af kolonner fra forskellige tabeller med lignende navne --> anvendt intern kolonne-id

  3. Flere kolonner i MATCH MOD

  4. MySQL-fejl:Kan ikke tilføje en fremmednøglebegrænsning?