Je suis assis avec un exemple tiré du livre "Murach's SQL Server 2016 for developers". L'exemple illustre comment coder des CTS récursifs en SQL. Je connais bien les fonctions de récursion (en C#) mais je n'arrive pas à comprendre comment fonctionne la logique de récursion en SQL. Voici l'exemple :
USE Examples;
WITH EmployeesCTE AS
(
-- Anchor member
SELECT EmployeeID,
FirstName + ' ' + LastName As EmployeeName,
1 As Rank
FROM Employees
WHERE ManagerID IS NULL
UNION ALL
-- Recursive member
SELECT Employees.EmployeeID,
FirstName + ' ' + LastName,
Rank + 1
FROM Employees
JOIN EmployeesCTE
ON Employees.ManagerID = EmployeesCTE.EmployeeID
)
SELECT *
FROM EmployeesCTE
ORDER BY Rank, EmployeeID;
Cette requête renvoie un niveau hiérarchique des employés de l'organisation.
Ma question : Dans une fonction de récurrence, on voit une variable décrémentée qui met fin à la récurrence (en atteignant un cas de base). Ma question est la suivante : où se trouve la partie correspondante dans EmployeesCTE ? Aidez-moi à comprendre la logique.