/* Formatted on 2017/09/21 오전 10:52:04 (QP5 v5.256.13226.35510) */
WITH T
AS (SELECT '강호동' AS USER_NM
,1 AS LEV
,'a' CD
,'' AS UP_CD
FROM DUAL
UNION ALL
SELECT '유재석' AS USER_NM
,2 AS LEV
,'b' CD
,'a' AS UP_CD
FROM DUAL
UNION ALL
SELECT '홍길동' AS USER_NM
,3 AS LEV
,'c' CD
,'b' AS UP_CD
FROM DUAL
UNION ALL
SELECT '강감찬' AS USER_NM
,4 AS LEV
,'d' CD
,'c' AS UP_CD
FROM DUAL)
SELECT DECODE (A.LEV, 1, A.USER_NM) NM1
,DECODE (A.LEV, 2, A.USER_NM) NM2
,DECODE (A.LEV, 3, A.USER_NM) NM3
,DECODE (A.LEV, 4, A.USER_NM) NM4
,CD
,UP_CD
,lev
FROM T A
ORDER BY CD
현재 데이터의 추출은 아래와 같습니다.
nm | lev | cd | up_cd |
강호동 | 1 | a | |
유재석 | 2 | b | a |
홍길동 | 3 | c | b |
강감찬 | 4 | d | c |
하고자 변경하고자 하는 데이터 추출은 아래와 같습니다.
nm1 | nm2 | nm3 | nm4 | lev | cd | up_cd |
강호동 | 1 | a | ||||
강호동 | 유재석 | 2 | b | a | ||
강호동 | 유재석 | 홍길동 | 3 | c | b | |
강호동 | 유재석 | 홍길동 | 강감찬 | 4 | d | c |