Database/query

오라클 세로를 가로로 만들기

다크곰 2011. 10. 4. 10:45
 select 컬럼
         , ltrim(sys_connect_by_path(컬럼,','),',') as 컬럼명
   from (
         select 컬럼
                 , menurole_id
                 , row_number() over (partition by 그룹컬럼 order by 정렬할컬럼) rn
                 , count (*) over (partition by 그룹컬럼 ) cnt
           from 테이블명
        ) a
  where level = cnt
  start with rn = 1
connect by prior 그룹컬럼 = 그룹컬럼 and prior rn = rn-1


=============================================================
CONSRSEQ TRADENM RNK CNT
0 A건설(50) 1 5
0 B건설(15) 2 5
0 C건설(15) 3 5
0 D건설(10) 4 5
0 E엔지니어링(10) 5 5
=============================================================

위의 쿼리를 아래와 같이 보여주려면 위의 샘플을 이용해 쿼리를 작성 해야 한다.

=============================================================
TRADENM
A건설(50)+B건설(15)+C건설(15)+D건설(10)+E엔지니어링(10)
============================================================= 

ltrim(sys_connect_by_path(a.tradenm,'+'),'+') as tradenm