Zjisti pozici v hierarchii
Při práci s rekurzí je důležité sledovat, na jaké úrovni rekurze se právě nacházíš. V IT organizaci to znamená, že musíš vědět, jaké místo v hierarchii každý zaměstnanec zaujímá.

K tomu využiješ pole LEVEL, které zaznamenává aktuální krok rekurze. Toto pole musíš zavést v ukotvovacím členu a v každém rekurzivním kroku jeho hodnotu zvýšit o 1.
Měj na paměti, že první úroveň hierarchie má hodnotu 0, druhá úroveň hodnotu 1 a tak dále.
Toto cvičení je součástí kurzu
Hierarchical and Recursive Queries in SQL Server
Pokyny k cvičení
- Inicializuj pole
LEVELna hodnotu 1 na začátku rekurze. - Jako první krok CTE vyber informace o IT řediteli filtrováním podle sloupce
Supervisor. - Nastav
LEVELna aktuální krok rekurze. - Proveď
JOINs definovaným CTE přesIDnadřízeného a zaměstnance.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
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;