Sobes.tech
Middle

Ar galite pateikti pavyzdį, kada naudojami rekursiniai CTE?

sobes.tech AI

Atsakymas iš AI

Rekursyvios lentelių išraiškos (CTE) naudojamos dirbti su hierarchinėmis arba rekursinėmis duomenų struktūromis, pavyzdžiui, medžio ar grafiko perėjimui.

Pavyzdys: gauti visus pavaldinius organizacinėje struktūroje.

WITH RECURSIVE Subordinates AS (
    SELECT employee_id, manager_id, name
    FROM employees
    WHERE employee_id = 1  -- pradinis vadovas
    UNION ALL
    SELECT e.employee_id, e.manager_id, e.name
    FROM employees e
    INNER JOIN Subordinates s ON e.manager_id = s.employee_id
)
SELECT * FROM Subordinates;

Šis užklausa rekursyviai surenka visus darbuotojus, kurie yra pavaldūs vadovui su employee_id = 1.