1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | -- UNION ALL 쓰는방법밖에 몰라서 ㅡㅡ; with one_grp as ( SELECT 'A' AS CODE, '1' AS SORT FROM DUAL UNION ALL SELECT 'B' , '2' FROM DUAL UNION ALL SELECT 'C' , '3' FROM DUAL ) , two_grp as ( SELECT 'A.a' AS CODE, 'A' as UP_CODE, '1' AS SORT FROM DUAL UNION ALL SELECT 'A.b' , 'A' , '2' FROM DUAL UNION ALL SELECT 'B.a' , 'B' , '1' FROM DUAL UNION ALL SELECT 'C.a' , 'C' , '1' FROM DUAL ) , three_grp as ( SELECT '1' AS CODE, 'A.a' as UP_CODE, '1' AS SORT, '안녕하세요' AS COMM FROM DUAL UNION ALL SELECT '2' , 'A.a' , '2' , '반갑습니다' FROM DUAL UNION ALL SELECT '1' , 'A.b' , '1' , '바나나' FROM DUAL UNION ALL SELECT '2' , 'A.b' , '2' , '커피' FROM DUAL UNION ALL SELECT '1' , 'B.a' , '1' , 'B-a-1 입니다' FROM DUAL UNION ALL SELECT '1' , 'C.a' , '1' , '하이' FROM DUAL ) SELECT * FROM ( SELECT CODE , NULL UP_CODE , SORT , '' COMM FROM one_grp UNION ALL SELECT CODE , UP_CODE , SORT , '' FROM two_grp UNION ALL SELECT CODE , UP_CODE , SORT , COMM FROM three_grp ) START WITH UP_CODE IS NULL CONNECT BY PRIOR CODE = UP_CODE |