LoslegenKostenlos loslegen

Position in der Hierarchie ermitteln

Ein wichtiges Thema bei Rekursionen ist das Verfolgen der Rekursionstiefe. In der IT-Organisation bedeutet das, die Position jeder Person in der Hierarchie nachzuhalten.

A section of the entire hierarchy

Dafür verwendest du ein Feld LEVEL, das den aktuellen Rekursionsschritt festhält. Du musst das Feld im Ankerteil einführen und den Wert in jedem Rekursionsschritt im rekursiven Teil erhöhen.

Denk daran: Die erste Hierarchieebene ist 0, die zweite Ebene ist 1 und so weiter.

Diese Übung ist Teil des Kurses

Hierarchische und rekursive Abfragen in SQL Server

Kurs anzeigen

Anleitung zur Übung

  • Initialisiere das Feld LEVEL zu Beginn der Rekursion mit 1.
  • Wähle die Informationen der IT-Direktorin/des IT-Direktors als ersten Schritt der CTE, indem du auf Supervisor filterst.
  • Setze LEVEL auf den aktuellen Rekursionsschritt.
  • Führe einen JOIN mit der definierten CTE über die IDs von Vorgesetzter und Mitarbeiter durch.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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;
Code bearbeiten und ausführen