ORACLE unpivot columns to rows

前端 未结 1 1099
梦毁少年i
梦毁少年i 2020-12-21 18:36

ORACLE 10 Hi, I was reading several posts here and i did not come up to a simple solution

I have this data:

Transacion_ID  GROSS_AMOUNT  DISCOUNT_AMO         


        
相关标签:
1条回答
  • 2020-12-21 19:18

    Try this

    Select * From (
    Select 
    Transacion_ID,
    Case When C.lvl = 1 Then 'GROSS'
         When C.lvl = 2 Then 'DISC'
    End TYPE,
    Case When C.lvl = 1 Then GROSS_AMOUNT
         When C.lvl = 2 Then DISCOUNT_AMOUNT
    End AMOUNT
    From T
    cross join (select level lvl from dual connect by level<=2) c     
    ) where amount is not null
    order by 1
    

    SQL DEMO

    This query is based on method mentioned here

    0 讨论(0)
提交回复
热议问题