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 39822 게시물 읽기
No. 39822
SQL 초고수에게 묻고싶습니다.
작성자
나상숙(kduimux)
작성일
2012-11-28 20:13ⓒ
2012-11-28 20:15ⓜ
조회수
6,432

TABLE1
직급 상위직급  SORT
 A                           2
 B                          3
 C      A                      1
 D      A                      2
 E                          1 
 F      B                      1
 G      B                     2  
 H      E                1  
 I      E                       2

SELECT 직급 *(LEVEL=>어쩌고저쩌고 AS 직급
  FROM TABLE1
START WITH 상위직급 IS NULL
CONNECT BY PRIOR 직급 = 상위직급
ORDER SIBLINGS BY SORT

결과는.. 아래.

직급
A
  C
  D

  F
  G
E
  H
  I

부모인 A,B,E의 정열은 CODE값이 정열이죠.

으로 보통 많이 쓰이죠.ORDER SIBLINGS BY 는 부모밑에 자식들 SORT로 쓰이죠
하지만 부모를 SORT하고 싶습니다.

아래처럼 이렇게 나오고 싶습니다. TABLE A는 SORT 부모SORT인 E->A->B 순서루요(부모의 SORT도
직급
E                  ->SORT가 1
   H
   I
A                  ->SORT가 2
   C
   D
B                 ->SORT가 3
    F
   G


 

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

10g  에서는 이상없이 잘 정렬됩니다. 버전이 낮은 모양이네요.
최상위보다 더 높은 최최상위를 추가해서 해보세요.


WITH t AS
(
SELECT 'A' cd, '' pcd, 2 seq FROM dual
UNION ALL SELECT 'B',  '', 3 FROM dual
UNION ALL SELECT 'C', 'A', 1 FROM dual
UNION ALL SELECT 'D', 'A', 2 FROM dual
UNION ALL SELECT 'E',  '', 1 FROM dual
UNION ALL SELECT 'F', 'B', 1 FROM dual
UNION ALL SELECT 'G', 'B', 2 FROM dual
UNION ALL SELECT 'H', 'E', 1 FROM dual
UNION ALL SELECT 'I', 'E', 2 FROM dual
)
SELECT cd
  FROM (SELECT '!' cd, '?' pcd, 0 seq FROM dual -- 최 최상위 추가
         UNION ALL
        SELECT cd, pcd, seq FROM t
        )
 WHERE cd != '!'
 START WITH pcd = '?'
 CONNECT BY PRIOR cd = NVL(pcd, '!')
 ORDER SIBLINGS BY seq
;

마농(manon94)님이 2012-11-29 01:14에 작성한 댓글입니다.

초고수답군요..감사합니다.

오라클 9이기깨문에 꽁수를 썼습니다.

최상위레벨을 1개 만들어서 부모를 연결했습니다.

조회 시에는  WHERE에서 최상위레벨을 제외했구요.

 

나상숙(kduimux)님이 2012-11-29 12:33에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
39825범위비교 쿼리 질문드립니다. [1]
김완경
2012-11-29
6322
39824조언부탁드립니다. [1]
부족한타블로
2012-11-29
6172
39823쿼리문의드립니다. [2]
슈펭
2012-11-29
6619
39822SQL 초고수에게 묻고싶습니다. [2]
나상숙
2012-11-28
6432
39819IN 쿼리가 잘안되는데요..ㅠㅠ [2]
초보
2012-11-28
5983
39818계층구조 sum 질문 [1]
함승우
2012-11-28
6636
39817analyze vs dbms_stats.gather_table_stats 차이점은?
신승식
2012-11-28
7126
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다