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

Benim amirim kim?

Bu egzersizde, hiyerarşinin en tepesindeki patrondan, en alttaki çalışanlara kadar olan yolu (path) elde etmek istiyoruz. Bu görev için, her adımda elde edilen bilgileri tek bir alanda birleştirmemiz gerekiyor. Bunu, sayısal ID’leri CAST() kullanarak metne çevirip birleştirerek yapabilirsin. Örneğin, sayısal türdeki ID’yi karakter türüne çevirmek için CAST(ID AS VARCHAR(MAX)) kullanılabilir.

Görev, ID=18 olan Chris Feierabend ve ID=16 olan Jasmin Mentil için organizasyonun en tepesine kadar yolu bulmaktır. Çıktı şöyle görünmelidir: boss_first_level -> boss_second_level .... Çalışanların isimleri değil, ID’leri seçilmelidir.

Bu egzersiz

SQL Server'da Hiyerarşik ve Özyinelemeli Sorgular

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

Egzersiz talimatları

  • Path alanını amirin (0) ID’siyle ve özyinelemenin başlangıç koşuluyla başlat.
  • Çapa (anchor) üyesini UNION ile birleştir ve özyinelemeli üyenin alanlarını (ID, Name, Supervisor) tanımla.
  • Her adımda Supervisor yani amirin ID’sini Path’e ekle.
  • CTE içinde Chris Feierabend ve Jasmin Mentil çalışanlarının ID’lerini seç.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

WITH employee_Hierarchy AS (
	SELECT
		ID, 
  		NAME,
  		Supervisor,
  		-- Initialize the Path with CAST
  		___('___' AS VARCHAR(MAX)) as Path
	FROM employee
	WHERE Supervisor = 0
	-- UNION the anchor query 
  	___ ALL
    -- Select the recursive query fields
	SELECT 
  		emp.___,
  		emp.___,
  		emp.___,
  		-- Add the supervisor in each step. CAST the supervisor.
        Path + '->' + ___(emp.___ AS VARCHAR(MAX))
	FROM employee emp
		INNER JOIN employee_Hierarchy
  		ON emp.Supervisor = employee_Hierarchy.ID
)

SELECT Path
FROM employee_Hierarchy
-- Select the employees Chris Feierabend and Jasmin Mentil
WHERE ___ = 16 OR ID = ___;
Kodu Düzenle ve Çalıştır