BaşlayınÜcretsiz Başlayın

Hiyerarşi konumunu al

Özyineleme ile çalışırken önemli bir sorun, özyineleme düzeyini takip etmektir. BT organizasyonunda bu, her çalışanın hiyerarşideki konumunu izlemek anlamına gelir.

Tüm hiyerarşinin bir bölümü

Bunun için, geçerli özyineleme adımını izleyen bir LEVEL alanı kullanacaksın. Bu alanı çapa (anchor) üyeye eklemeli ve özyineleme üyede her adımda bu değeri artırmalısın.

Unutma, ilk hiyerarşi düzeyi 0, ikinci düzey 1 şeklinde devam eder.

Bu egzersiz

SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Özyinelemenin başlangıcında LEVEL alanını 1 olarak başlat.
  • Supervisor alanında filtreleyerek BT direktörünün bilgilerini CTE’nin ilk adımı olarak seç.
  • LEVEL değerini geçerli özyineleme adımına ayarla.
  • Yöneticinin ve çalışanın ID’leri üzerinden tanımlı CTE ile bir JOIN gerçekleştir.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

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;
Kodu Düzenle ve Çalıştır