Začněte nyníZačněte zdarma

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á.

A section of the entire hierarchy

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

Zobrazit kurz

Pokyny k cvičení

  • Inicializuj pole LEVEL na hodnotu 1 na začátku rekurze.
  • Jako první krok CTE vyber informace o IT řediteli filtrováním podle sloupce Supervisor.
  • Nastav LEVEL na aktuální krok rekurze.
  • Proveď JOIN s definovaným CTE přes ID nadří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;
Upravit a spustit kód