계층형 쿼리 0 3 1,657

by 손님 [SQL Query] [2015.03.12 18:18:19]


계층형 쿼리 질문입니다.

부서정보를 계층형으로 뿌린뒤 가로로 나오게 하고싶은데요

1레벨 본부 2레벨 사업부 3레벨 부서로 되어있는데요

계층형 구조로 데이터를 뽑았는데요.

level 부서명

1     1본부

2     1사업부

3     1부서

이렇게 뿌린 값을 가로로 표현하고 싶습니다.

본부    사업부   부서

1본부  1사업부 1부서

decode를 써서 그룹바이로 묶으면 될거같은데 다른 방법이있는지 궁금합니다.

답변 부탁드립니다.

by jkson [2015.03.13 07:34:49]
with t as
(
select 1 lv, '1본부' dept from dual
union all
select 2 lv, '1사업부' dept from dual
union all
select 3 lv, '1부서' dept from dual
)
--pivot 사용
select * 
  from t
pivot (min(dept) for lv in (1 "본부", 2 "사업부", 3 "부서"))
union all
--decode 사용
select max(decode(lv,1,dept)) "본부"
     , max(decode(lv,2,dept)) "사업부"
     , max(decode(lv,3,dept)) "부서"
  from t


 


by 마농 [2015.03.13 08:47:56]

1. 단 하나의 부서를 조회하는 경우라면?
  - MIN(DECODE(LEVEL 을 이용하시면 됩니다.
2. 여러 부서가 동시에 조회되는 상황이라면?
  - SELECT 절에서 SYS_CONNECT_BY_PATH 를 이용하세요.
  - WHERE 절에서는 CONNECT_BY_ISLEAF = 1 조건을 주세요.


by 손님 [2015.03.13 09:25:35]

친절히 답변해 주신 두분 감사합니다 /^^/

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입