database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 39078 게시물 읽기
No. 39078
계층쿼리 좀 힘드네요!~
작성자
박창민(anwlwkd47)
작성일
2011-11-10 15:12
조회수
5,487

 안녕하세요!~ 

 

저는 지금 계층쿼리를 구현할려고 합니다.

데이타는 아래와 같구요

-----------------------A테이블-------------------------------

ID      PARENT_ID      NAME         LEVEL

55       33                           라            4 

33       22                           다            3

22       11                           나            2

11       NULL                     가            1

-----------------------B테이블-------------------------------

ID      GA_NAME

55        AA

33        BB

22        CC

 

--------------결과 --------------------------------------

대분류    소분류   중분류   세분류       기타명

가             나          다           라                AA

가             나          다                               BB

가             나                                             CC

 

 

위와 같이 출력하고 싶습니다.

B테이블을 기준으로 A테이블이 계층을 LEVE 1,2,3,4   대로 대분류,중분류,소분류,세분류 로 

결과를 보여주고 싶습니다.

아이디어가 생각이 안나네요!~ 도와주세요!~ 

이 글에 대한 댓글이 총 1건 있습니다.

WITH a AS
(
SELECT '55' id, '33' parent_id, '라' name FROM dual
UNION ALL SELECT '33', '22', '다' FROM dual
UNION ALL SELECT '22', '11', '나' FROM dual
UNION ALL SELECT '11', NULL, '가' FROM dual
)
, b AS
(
SELECT '55' id, 'AA' ga_name FROM dual
UNION ALL SELECT '33', 'BB' FROM dual
UNION ALL SELECT '22', 'CC' FROM dual
)
SELECT REGEXP_SUBSTR(name, '[^,]+', 1, 1) v1
     , REGEXP_SUBSTR(name, '[^,]+', 1, 2) v2
     , REGEXP_SUBSTR(name, '[^,]+', 1, 3) v3
     , REGEXP_SUBSTR(name, '[^,]+', 1, 4) v4
     , b.ga_name
  FROM (SELECT id
             , SYS_CONNECT_BY_PATH(name, ',') name
             , LEVEL lv
          FROM a
         START WITH parent_id IS NULL
         CONNECT BY PRIOR a.id = a.parent_id
        ) a
     , b
 WHERE a.id = b.id
 ORDER BY a.lv DESC
;

마농(manon94)님이 2011-11-11 13:48에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39082중복되지 않게 합산 한 결과 출력 [1]
바램
2011-11-10
4746
39081오라클 데이터 마이그레이션 (AL32UTF8) 시 CLOB 데이터 사이즈 [1]
오라클
2011-11-10
7140
39079index unique scan~~~ [1]
궁금이
2011-11-10
4090
39078계층쿼리 좀 힘드네요!~ [1]
박창민
2011-11-10
5487
39077아우터 조인 해결(?) [1]
황준석
2011-11-10
4097
39076두개의 테이블을 tree 구조로 표현하기 [2]
박진희
2011-11-10
4545
39075숫자 다음에 바로 영문이 붙어 있을 경우에도 대문자료 표기하는 방법은 어떻게 되나요? [1]
최원용
2011-11-10
4142
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다