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 39248 게시물 읽기
No. 39248
간단한 문제좀 도와주세요~
작성자
영구
작성일
2012-01-19 17:52
조회수
4,433

너무 초보라 뭐라고 검색해야 될지도 몰라서 질문을 쓰게되네요

ID P

1

2

3 1

4 2

5

6

7 1

8 2

2

 

위와 같은테이블에서

P 칼럼이 null이 아닌 ID 3 4 7 8 9 를 제외하고

P 칼럼에 있는 ID 1 2 도 제외하고 싶습니다

한마디로 계단식이고 자식이 있거나 부모가 있는 ID 를 제외한 5 6 만 조회하고 싶어요...

 

 

도와주셔서 감사합니다.

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

예시자료는 계층 구조가 2단계까지만 표현되어 있는데.
실제로는 어떤가요? 2단계까지만 있나요? 더 내려갈 수도 있나요?
2단계 뿐이라면 다음과 같이 테이블 한번만 읽고 가능합니다.

SELECT NVL(p, id) id
  FROM t
 GROUP BY NVL(p, id)
HAVING COUNT(*) = 1
;

여러 단계로 내려가는 구조라면 계층구조로 전개하던가
테이블 두번 읽어 처리하던가 해야겠네요.

SELECT id
  FROM t
 WHERE p IS NULL
   AND CONNECT_BY_ISLEAF = 1
 START WITH p IS NULL
 CONNECT BY PRIOR id = p
;

SELECT id
  FROM t
 WHERE p IS NULL
 MINUS
SELECT p
  FROM t
 WHERE p IS NOT NULL
;

SELECT id
  FROM t
 WHERE p IS NULL
   AND id NOT IN (SELECT p FROM t WHERE p IS NOT NULL)
;

SELECT id
  FROM t a
 WHERE p IS NULL
   AND NOT EXISTS (SELECT p FROM t WHERE p = a.id)
;

SELECT a.id
  FROM t a
     , t b
 WHERE a.p IS NULL
   AND a.id = b.p(+)
   AND b.id IS NULL
;

마농(manon94)님이 2012-01-20 08:14에 작성한 댓글입니다.
이 댓글은 2012-01-20 11:29에 마지막으로 수정되었습니다.

감사합니다~!!!

영구님이 2012-01-20 11:16에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39251취미별로 데이타를 정렬시키는 쿼리를 알려주세요 [1]
궁금이
2012-01-24
3139
39250오라클 8.1.7버전에서 -> 11.2 로 올릴시 pro cobol 관련 질문입니다.
2012-01-20
3459
39249procedure 삭제시 오류 해결부탁드립니다. [1]
정재림
2012-01-20
3663
39248간단한 문제좀 도와주세요~ [2]
영구
2012-01-19
4433
39247오라클11 설치시 물리적메모리 에러 [1]
이무용
2012-01-19
18745
39246마농님께.....이거 한번만 더 봐주시면 안될까요? ㅜㅜ..제가 좀 초보라....ㅜㅜ [2]
일쌍다반사
2012-01-19
5747
39245쿼리 도움 부탁드립니다
초보
2012-01-19
3643
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다