试试这个
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