with t as (
select 'a' a, 1 b, 2 c, 3 d, 'eeee' e from dual union all
select 'aa' a, 2 b, 3 c, 1 d, 'ffff' e from dual union all
select 'aaa' a, 3 b, 1 c, 2 d, 'gggg' e from dual)
select *
from t;
이런 데이터를 아래와 같이 변형을 하고자 합니다.
a b eeee
a c eeee
a d eeee
aa d ffff
aa b ffff
aa c ffff
aaa c gggg
aaa d gggg
aaa b gggg
컬럼 a 별로 b,c,d 가 분리가 되어서 각각의 컬럼의 순위 별로 1,2,3을 매기는 겁니다.
select level lv from dual connect by level <= 3 이걸로 행을 늘린다음에 조건을 걸어야
할거 같은데 도통 생각이 나질 않습니다...
부탁좀 드리겠습니다. |