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 41186 게시물 읽기
No. 41186
비정상데이터 connect by 조회가능할까요.
작성자
김정묵(popolio)
작성일
2016-06-23 09:34ⓒ
2016-06-23 09:40ⓜ
조회수
7,395

데이터의 연결관계가 비정상일때 connect by 가 안되는데,, 정상으로 데이터 수정하면서 connect by

할 수 있을까요.

 

현상)

도로경로를 추적하는데 시작 종료가 비정상으로 들어있는 데이터입니다.

번호는 일련번호가 아니라서 의미가 없습니다.

현재 방향성은 아래와 같습니다.

 

............... 5 <-3

...............↓

............... 6

...............↓

1 -> 2 -> 4 <-8 <-7

 

시작점이 1일 경우 데이터를 정상으로 맞추면서 계통연결관계를 추적할 수 있을 까요

 

oracle의 비정상 데이터)

원본

from필드 / to필드

1 2

2 4

4 8

7 8

6 4

5 6

3 5

 

 

SQL생성 후 추출하고 싶은 데이터 )

 

from필드 / to필드

1 2

2 4

4 8

8 7

4 6

6 5

5 3 입니다.

 

 

며칠을 고생했는데 답이 없네요..

 

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

WITH t AS
(
SELECT 1 fr_cd, 2 to_cd FROM dual
UNION ALL SELECT 2, 4 FROM dual
UNION ALL SELECT 4, 8 FROM dual
UNION ALL SELECT 7, 8 FROM dual
UNION ALL SELECT 6, 4 FROM dual
UNION ALL SELECT 5, 6 FROM dual
UNION ALL SELECT 3, 5 FROM dual
)
SELECT gb
     , fr_cd, to_cd
     , LEVEL lv
     , SYS_CONNECT_BY_PATH(fr_cd, '-') ||'-'|| to_cd path
  FROM (SELECT 'A' gb, fr_cd, to_cd FROM t
         UNION ALL
        SELECT 'D' gb, to_cd, fr_cd FROM t
         WHERE fr_cd != 1
        )
 START WITH fr_cd = 1
 CONNECT BY NOCYCLE PRIOR to_cd = fr_cd
;

마농(manon94)님이 2016-06-23 14:44에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41189두개의 테이블 검색(도움요청) [3]
염진호
2016-06-29
7491
41188실용성이 있는 SQL 퀴즈입니다. ^^ [3]
김흥수
2016-06-24
10533
41187아카이브 로그파일 위치 변경 . [1]
dba
2016-06-23
7615
41186비정상데이터 connect by 조회가능할까요. [1]
김정묵
2016-06-23
7395
41185고수님들의 뜨거운 조언을 구합니다. [3]
벌집
2016-06-23
7626
41184포인트 이력 조회 [2]
IT재벌
2016-06-22
7569
41183기간 사이의 날짜 뽑아 내기 질문 입니다. [2]
ASKO912
2016-06-22
8999
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2023 DSN, All rights reserved.
작업시간: 0.049초, 이곳 서비스는
	PostgreSQL v16.1로 자료를 관리합니다