여러 ROW의 데이터를 한줄의 ROW로 출력하고 싶습니다.
현재 데이터는 아래와 같이 들어가 있습니다.
[실 데이터 형태]
PK_NUM | SEQ | USER | USER_NO |
15533 | 1 | 홍길동 | 10101 |
15533 | 2 | 임꺽정 | 10102 |
15534 | 1 | 강호동 | 10103 |
15534 | 2 | 유재석 | 10104 |
15534 | 3 | 금잔디 | 10105 |
PK = PK_NUM
(SEQ의 증가값은 알 수 없음. 10까지 늘어날 수도 있고 1일 수도 있음.)
[뽑고싶은 데이터형태]
PK_NUM | 작성자 | 작성자NO | 확인자 | 확인자NO | 확인자1 | 확인자1NO |
15533 | 홍길동 | 10101 | 임꺽정 | 10102 | ||
15534 | 강호동 | 10103 | 유재석 | 10104 | 금잔디 | 10105 |
위와 같이 출력하고 싶은데 도움 부탁 드립니다.
WITH t AS ( SELECT 15533 pk_num, 1 seq, '홍길동' user_nm, 10101 user_no FROM dual UNION ALL SELECT 15533, 2, '임꺽정', 10102 FROM dual UNION ALL SELECT 15534, 1, '강호동', 10103 FROM dual UNION ALL SELECT 15534, 2, '유재석', 10104 FROM dual UNION ALL SELECT 15534, 3, '금잔디', 10105 FROM dual ) SELECT pk_num , MIN(DECODE(seq, 1, user_nm)) user_nm1 , MIN(DECODE(seq, 1, user_no)) user_no1 , MIN(DECODE(seq, 2, user_nm)) user_nm2 , MIN(DECODE(seq, 2, user_no)) user_no2 , MIN(DECODE(seq, 3, user_nm)) user_nm3 , MIN(DECODE(seq, 3, user_no)) user_no3 FROM t GROUP BY pk_num ORDER BY pk_num ;