Dapatkan posisi dalam hierarki
Masalah penting saat bekerja dengan rekursi adalah melacak tingkat (level) rekursi. Dalam organisasi TI, ini berarti mencatat posisi setiap karyawan dalam hierarki.

Untuk itu, Anda akan menggunakan kolom LEVEL yang melacak langkah rekursi saat ini. Anda harus memperkenalkan kolom ini di anggota jangkar (anchor member), dan menambah nilainya pada setiap langkah rekursi di anggota rekursi.
Perlu diingat, tingkat hierarki pertama adalah 0, tingkat kedua adalah 1, dan seterusnya.
Latihan ini adalah bagian dari kursus
Kueri Hierarkis dan Rekursif di SQL Server
Petunjuk latihan
- Inisialisasi kolom
LEVELke 1 pada awal rekursi. - Pilih informasi direktur TI sebagai langkah awal CTE dengan memfilter berdasarkan
Supervisor. - Atur
LEVELke langkah rekursi saat ini. - Lakukan
JOINdengan CTE yang didefinisikan padaIDsupervisor dan karyawan.
Latihan interaktif praktis
Cobalah latihan ini dengan menyelesaikan kode contoh berikut.
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;