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 38942 게시물 읽기
No. 38942
컬럼을 나누면서 connect by를 하려는데요
작성자
ㅇㅇ
작성일
2011-10-06 17:55ⓒ
2011-10-07 11:21ⓜ
조회수
5,320

 예를들어

주소          code             code_p

-----------------------------------------------

서울시             1                     0

강남구             2                     1

송파구             3                      1

대치동             4                      2

문정동            5                       3

구로구            6                       1

고척동            7                       6

개포동          8                         2

의정부            9                      null

부산                10                     0

 

 

 

이런 데이터를

col1             col2               col3

------------------------------------------------

서울시       강남구          대치동

서울시       강남구          개포동

서울시        구로구        고척동

서울시       송파구          문정동

null                 null         의정부

부산               null             null

 

이렇게 출력하고 싶은데

 

방법과 설명좀 부탁드릴게요~

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

select code
      ,substr(sys_connect_by_path(nm, ','),2) as paths
      ,code_p
  from (
select 1  code, '서울시' nm, 0    code_p from dual union all
select 2  code, '강남구' nm, 1    code_p from dual union all
select 3  code, '송파구' nm, 1    code_p from dual union all
select 4  code, '대치동' nm, 2    code_p from dual union all
select 5  code, '문정동' nm, 3    code_p from dual union all
select 6  code, '구로구' nm, 1    code_p from dual union all
select 7  code, '고척동' nm, 6    code_p from dual union all
select 8  code, '개포동' nm, 2    code_p from dual union all
select 9  code, '의정부' nm, null code_p from dual union all
select 10  code, '부산'   nm, 0    code_p from dual
)
where connect_by_isleaf = 1
connect by prior code = code_p
start with code_p = 0
        or code_p is null;

노란자님이 2011-10-07 10:15에 작성한 댓글입니다.
이 댓글은 2011-10-07 10:16에 마지막으로 수정되었습니다. Edit

 감사합니다~

근데 저는 콤마로 구별하는게 아니구

 

decode로 칼럼을 나누려구요....ㅠㅠ

ㅇㅇ님이 2011-10-07 10:42에 작성한 댓글입니다. Edit

WITH t AS
(
SELECT 1 code, '서울시' addr, 0 code_p FROM dual
UNION ALL SELECT  2, '강남구',    1 FROM dual
UNION ALL SELECT  3, '송파구',    1 FROM dual
UNION ALL SELECT  4, '대치동',    2 FROM dual
UNION ALL SELECT  5, '문정동',    3 FROM dual
UNION ALL SELECT  6, '구로구',    1 FROM dual
UNION ALL SELECT  7, '고척동',    6 FROM dual
UNION ALL SELECT  8, '개포동',    2 FROM dual
UNION ALL SELECT  9, '의정부', null FROM dual
UNION ALL SELECT 10, '부산'  ,    0 FROM dual
)
SELECT REGEXP_SUBSTR(addr, '[^,]+', 1, 1) addr1
     , REGEXP_SUBSTR(addr, '[^,]+', 1, 2) addr2
     , REGEXP_SUBSTR(addr, '[^,]+', 1, 3) addr3
  FROM (
        SELECT SYS_CONNECT_BY_PATH(addr, ',') addr
          FROM t
         WHERE CONNECT_BY_ISLEAF = 1
         START WITH NVL(code_p, 0) = 0
         CONNECT BY PRIOR code = code_p
        )
;

마농(manon94)님이 2011-10-07 13:10에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
38945파티션 테이블 truncate [1]
초보
2011-10-07
4487
38944토드 Export Data로 Insert SQL 파일 추출 관련 질문입니다. [1]
조동건
2011-10-07
9151
38943암호화 대상 컬럼의 크기는 얼마나 잡아야되나요? [2]
흰자
2011-10-06
4104
38942컬럼을 나누면서 connect by를 하려는데요 [3]
ㅇㅇ
2011-10-06
5320
38941DELETE 관련 간단한 질문요 [4]
궁그미
2011-10-06
4006
38940밑에 커서오류 이어서 문제..미치겠습니다. [3]
박주영
2011-10-05
4753
38939pl/sql 최대 열기 커서 수 에러 도움 급합니다. [3]
박주영
2011-10-05
4216
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.020초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다