sql >> Database >  >> RDS >> Oracle

Selecteer dezelfde kolom voor verschillende waarden in een andere kolom

Niet getest omdat u geen testgegevens heeft verstrekt (uit tabel AC_XXXX ):
(met Oracle 11 PIVOT-clausule)

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

Voor Oracle 10 of eerder werd het draaien "met de hand" gedaan, zoals:

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

Of, emp_id hoeft niet binnen max() . te zijn als we group by emp_id . toevoegen - die dan werkt, zelfs zonder de WHERE-clausule, voor een andere, maar gerelateerde vraag.




  1. Mysql:gegevens verwisselen voor verschillende rijen

  2. MySql Inner Join met WHERE-clausule

  3. Java - JDBC-verbinding

  4. Een directory beschermen tegen directe URL-toegang