안녕하세요 초보개발자입니다
동적으로 행/열변환하려고 하는데 방법을 몰라 문의드립니다(참고로 오라클 11g 사용합니다)
이렇게 저장되어 있는 데이터를,
코드값 | 인덱스 | 사번 | 사명 | 전화번호 |
AAAAA1 | 1 | HHH001 | 김나나 | 010-0000-5678 |
AAAAA1 | 2 | HHH002 | 강나나 | 010-0000-5679 |
AAAAA1 | 3 | HHH003 | 박나나 | 010-0000-5680 |
AAAAA1 | 4 | HHH004 | 송나나 | 010-0000-5681 |
AAAAA1 | 5 | HHH005 | 최나나 | 010-0000-5682 |
BBBBB1 | 2 | HHH006 | 한니노 | 010-0000-5688 |
BBBBB1 | 4 | HHH007 | 남니노 | 010-0000-5689 |
BBBBB1 | 5 | HHH008 | 현니노 | 010-0000-5690 |
BBBBB1 | 6 | HHH009 | 왕니노 | 010-0000-5691 |
이렇게 출력하려고 합니다.
코드값 | 사번 1 | 성명 1 | 전화번호1 | 사번 2 | 성명 2 | 전화번호2 | 사번 3 | 성명 3 | 전화번호3 | 사번 4 | 성명 4 | 전화번호4 | 사번 5 | 성명 5 | 전화번호5 | 사번 6 | 성명 6 | 전화번호6 |
AAAAA1 | HHH001 | 김나나 | 010-0000-5678 | HHH002 | 강나나 | 010-0000-5679 | HHH003 | 박나나 | 010-0000-5680 | HHH004 | 송나나 | 010-0000-5681 | HHH005 | 최나나 | 010-0000-5682 | |||
BBBBB1 | HHH006 | 한니노 | 010-0000-5688 | HHH007 | 남니노 | 010-0000-5689 | HHH008 | 현니노 | 010-0000-5690 | HHH009 | 왕니노 | 010-0000-5691 |
with t(코드값, 인덱스, 사번, 성명, 전화번호) as ( select 'AAAAA1', 1, 'HHH001', '김나나', '010-0000-5678' from dual union all select 'AAAAA1', 2, 'HHH002', '강나나', '010-0000-5679' from dual union all select 'AAAAA1', 3, 'HHH003', '박나나', '010-0000-5680' from dual union all select 'AAAAA1', 4, 'HHH004', '송나나', '010-0000-5681' from dual union all select 'AAAAA1', 5, 'HHH005', '최나나', '010-0000-5682' from dual union all select 'BBBBB1', 2, 'HHH006', '한니노', '010-0000-5688' from dual union all select 'BBBBB1', 4, 'HHH007', '남니노', '010-0000-5689' from dual union all select 'BBBBB1', 5, 'HHH008', '현니노', '010-0000-5690' from dual union all select 'BBBBB1', 6, 'HHH009', '왕니노', '010-0000-5691' from dual ) select * from t PIVOT (max(사번) as 사번,max(성명) as 성명, max(전화번호) as 전화번호 FOR 인덱스 IN (1,2,3,4,5,6)) order by 코드값;