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

PIVOT Oracle - transformer flere rækkedata til en enkelt række med flere kolonner, ingen samlede data

Du gør ikke noget med beskrivelsen, som også varierer med tagget. Det er ikke aggregeret, så det i den implicitte "gruppe efter", så du får separate rækker i resultatsættet.

Du kan enten fange det også med et andet (dummy) aggregat:

select * from (
  select * from TEST2 where tag in ('LN', 'SN')
)
PIVOT
(
  max(value) as value, max(description) as description
  for tag in ('LN' as ln, 'SN' as sn)
)
order by category, subcat, item, "Date";

Date      SUBCAT CATEGOR IT LN_VALUE          LN_DESCRIPTION  SN_VALUE          SN_DESCRIPTION
--------- ------ ------- -- ----------------- --------------- ----------------- ---------------
24-OCT-13 290223 1219576 25 1105618           Lot Number      3x12mm            Serial Number  
24-OCT-13 290223 1219576 28 1303757           Lot Number                                       
18-JUN-15 354506 1219576 4  1403114           Lot Number                                       
18-JUN-15 354506 1219576 9  7777777777        Lot Number      9.999999999999E12 Serial Number  

Eller mere sandsynligt ekskluder det fra det mellemliggende resultatsæt, hvis du ikke ønsker det, ved at angive de kolonner, du ønsker i stedet for at bruge * :

select * from (
  select category, subcat, item, "Date", tag, value
  from TEST2 where tag in ('LN', 'SN')
)
PIVOT
(
  max(value) for tag in ('LN' as ln, 'SN' as sn)
)
order by category, subcat, item, "Date";

CATEGOR SUBCAT IT Date      LN                SN              
------- ------ -- --------- ----------------- -----------------
1219576 290223 25 24-OCT-13 1105618           3x12mm           
1219576 290223 28 24-OCT-13 1303757                            
1219576 354506 4  18-JUN-15 1403114                            
1219576 354506 9  18-JUN-15 7777777777        9.999999999999E12


  1. Ændring af en kolonne:null til ikke null

  2. Hvor kan jeg downloade kilde til MySQL Connector/J

  3. Tilslutning til en ekstern Oracle DB med Nodejs via Oracledb Driver

  4. Sådan rettes java.sql.SQLEException:Kolonne 'id' blev ikke fundet. fejl i Spring Boot