Oracle rowmove,how to move 2 cols 1 row into 1 col 2 rows in oracle

I have a query which i cannot seem to get right. I want to change teh result set so it is 1 coloumn and can be N amount of rows.

original query

select src_approval, dst_approval

from example_table

where id = 62615

group by src_approval, dst_approval

I tried the following which is not correct.

select src_approval, dst_approval

from example_table

unpivot

( colvalue for col in (src_approval, dst_approval) )

where id = 62615

group by src_approval, dst_approval

I tried the following which still gives me 2 columns

select *

from (

select src_approval, dst_approval

from example_table

where id= 62615

group by src_approval, dst_approval

)

unpivot

( income_component_value

for income_component_type in (src_approval, dst_approval)

)

RESULT

select *

from (

select src_approval, dst_approval

from e_p

where exemption_id = 62615

group by src_approval, dst_approval

)

unpivot

( owner

for approval in (src_approval, dst_approval)

)

# Answer 1

4d350fd91e33782268f371d7edaa8a76.png

Yes, you can still use unpivot as

select colvalue from

(

select id, colvalue, col

from example_table

unpivot(colvalue for col in(src_approval,dst_approval))

)

where id = 62615

# Answer 2

If you are considering unpivot, you can use a lateral join:

select distinct x.dte

from example_table et cross join lateral

(select et.src_approval as dte from dual union all

select et.dst_approval as dte from dual

) x

where id = 62615;

More commonly, this would just be written using union:

select et.src_approval

from example_table et

union -- on purpose to remove duplicates

select et.dst_approval

from example_table et;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值