with t as( select 1 a, '上' b, 1 c from dual union select 2 a, '中' b, 5 c from dual union select 3 a, '下' b, 3 c from dual union select 2 a, '左' b, 4 c from dual )select max(decode(a,1,b,null)) "1", max( decode(a,2,b,null)) "2", max(decode(a,3,b,null)) "3" from( select row_number() over(partition by a order by c) rm ,t.* from t ) group by rm
with t as(
select 1 a, '上' b, 1 c from dual
union
select 2 a, '中' b, 5 c from dual
union
select 3 a, '下' b, 3 c from dual
union
select 2 a, '左' b, 4 c from dual
)select max(decode(a,1,b,null)) "1",
max( decode(a,2,b,null)) "2",
max(decode(a,3,b,null)) "3"
from(
select row_number() over(partition by a order by c) rm
,t.*
from t
)
group by rm