Skip to content Skip to footer

Ієрархічні запити в Oracle: START WITH, CONNECT BY

Якщо таблиця містить ієрархічні дані (дані, які можуть бути згруповані в рівні з розміщенням батьківських даних на більш високих, а дочірніх — на нижчих рівнях), можна використовувати підтримувані Oracle ієрархічні запити. В ієрархічних запитах зазвичай застосовуються такі конструкції:

START WITH, яка позначає кореневий рядок чи рядки ієрархічного відношення;

CONNECT BY, яка задає відносини між батьківськими та дочірніми рядками разом з операцією PRIOR, яка завжди вказує на батьківський рядок.

У лістингу нижче наведено приклад ієрархічного відношення між стовпцями співробітників та менеджерів. 

Конструкція CONNECT BY вказує, як має виглядати це ставлення, а конструкція START WITH — з якого місця оператору слід починати відстежувати ієрархію.

select employee_id, last_name, manager_id, level, level-1 pathlen, sys_connect_by_path(last_name, '/') path
from employees
start with manager_id = 100
connect by prior employee_id = manager_id
order by 4;

Залишити коментар

 

Напиши нам і ми з тобою зв'яжемося.

    Як краще відповісти вам?

    Після отримання форми ми зв’яжемося з вами :) ви також можете написати нам в месенджерах