Визначте позицію в ієрархії
Важливе завдання під час роботи з рекурсією — відстежувати рівень рекурсії. В ІТ‑організації це означає знати позицію кожного працівника в ієрархії.

Для цього ви використаєте поле LEVEL, яке зберігає поточний крок рекурсії. Вам потрібно ввести це поле в опорному (anchor) члені та збільшувати його значення на кожному кроці рекурсії в рекурсивному члені.
Пам'ятайте: перший рівень ієрархії — 0, другий — 1, і так далі.
Ця вправа є частиною курсу
Ієрархічні та рекурсивні запити в SQL Server
Інструкції до вправи
- Ініціалізуйте поле
LEVELзначенням 1 на початку рекурсії. - Виберіть інформацію про директора ІТ як початковий крок CTE, відфільтрувавши за
Supervisor. - Установіть
LEVELвідповідно до поточного кроку рекурсії. - Виконайте
JOINіз визначеним CTE заIDкерівника та працівника.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
WITH employee_hierarchy AS (
SELECT
ID,
NAME,
Supervisor,
-- Initialize the field LEVEL
___ as LEVEL
FROM employee
-- Start with the supervisor ID of the IT Director
WHERE ___ = ___
UNION ALL
SELECT
emp.ID,
emp.NAME,
emp.Supervisor,
-- Increment LEVEL by 1 each step
___ + 1
FROM employee emp
JOIN employee_hierarchy
-- JOIN on supervisor and ID
ON emp.___ = employee_hierarchy.___)
SELECT
cte.Name, cte.Level,
emp.Name as ManagerID
FROM employee_hierarchy as cte
JOIN employee as emp
ON cte.Supervisor = emp.ID
ORDER BY Level;