De juiste manier om uw ORDERing uit te voeren, is door een ORDER BY-clausule toe te voegen aan uw buitenste selectie. Al het andere is afhankelijk van implementatiedetails die op elk moment kunnen veranderen (ook als de grootte van uw database/tabellen groter wordt, waardoor meer parallelle verwerking mogelijk is).
Als je iets handigs nodig hebt om de bestelling te laten plaatsvinden, kijk dan naar Voorbeeld D in de voorbeelden uit de MSDN-pagina op WITH :
WITH DirectReports(ManagerID, EmployeeID, Title, EmployeeLevel) AS
(
SELECT ManagerID, EmployeeID, Title, 0 AS EmployeeLevel
FROM dbo.MyEmployees
WHERE ManagerID IS NULL
UNION ALL
SELECT e.ManagerID, e.EmployeeID, e.Title, EmployeeLevel + 1
FROM dbo.MyEmployees AS e
INNER JOIN DirectReports AS d
ON e.ManagerID = d.EmployeeID
)
Voeg iets vergelijkbaars toe aan de kolom Werknemersniveau van uw CTE en alles zou moeten werken.