steadilee
FRACTAL
steadilee
전체 방문자
오늘
어제
  • 분류 전체보기 (47)
    • Knowledge (0)
      • 컴퓨터 (0)
    • Data Analysis (7)
      • 공부 (4)
      • Simple Analysis (0)
      • ML,DL (3)
      • Kaggle (0)
    • Skill (40)
      • SQL 이론 (3)
      • Oracle (18)
      • MySQL (0)
      • Python (5)
      • Linux (2)
      • C,C#,C++ (8)
      • Java (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
steadilee

FRACTAL

Skill/Oracle

Oracle 중급 4: 계층형 질의문

2022. 5. 10. 13:52

예제89. 계층형 질의문으로 서열을 주고 데이터 출력하기1


- start with~/connect by prior

(예시)

select ename,level, sal,job
    from emp
    start with ename = 'KING'
    connect by prior empno = mgr;


- level에 따라 공백을 주고 싶다면 rpad 사용 가능
   -> level에 따라 오른쪽에 공백


select rpad(' ', level*3) | |  ename, level,  sal, job
    from emp
    start with ename = 'KING'
    connect by prior empno = mgr;

- 특정 서열만 출력하려면 from 다음에 where 절


예제 90. 계층형 질의문으로 서열을 주고 데이터 출력하기2 : 조건


- 서열 준 뒤 조건 줄 때는 where절이 아닌 connect by 절에 작성한다.

 


예제 91. 계층형 질의문으로 서열을 주고 데이터 출력하기3 : 정렬


- 서열 유지하고 정렬하기

- order siblings by~

[문제1]

???? select rpad(' ',level*3) || ename, level,sal, job
    from emp
    start with ename = 'KINS'
    connect by prior empno = mgr and ename = 'BLAKE'
    order siblings by sal asc;


이렇게 하면 왜 BLAKE 부하직원은 안나오는지???


예제92. 계층형 질의문으로 서열을 주고 데이터 출력하기4 


- sys_connect_by_path 함수
- 계층에 따른 경로를 오른쪽으로 나열하여 보여줌
- sys_connect_by_path(컬럼명, '구분기호')

저작자표시 비영리 변경금지 (새창열림)

'Skill > Oracle' 카테고리의 다른 글

Oracle 중급6 : 뷰, 인덱스, 시퀀스  (0) 2022.05.10
Oracle 중급5 : DDL  (0) 2022.05.10
Oracle 중급3 : DML문, LOCK  (0) 2022.05.06
Oracle 중급2: 집합연산자, 서브쿼리  (0) 2022.05.05
Oracle 중급 1 : JOIN  (0) 2022.05.03
    'Skill/Oracle' 카테고리의 다른 글
    • Oracle 중급6 : 뷰, 인덱스, 시퀀스
    • Oracle 중급5 : DDL
    • Oracle 중급3 : DML문, LOCK
    • Oracle 중급2: 집합연산자, 서브쿼리
    steadilee
    steadilee

    티스토리툴바