Den korrekte måde at gøre din BESTILLING på er at tilføje en ORDER BY-klausul til dit yderste udvalg. Alt andet er afhængigt af implementeringsdetaljer, der kan ændre sig til enhver tid (inklusive hvis størrelsen på din database/tabeller stiger, hvilket kan tillade mere parallel behandling).
Hvis du har brug for noget praktisk til at tillade bestillingen at finde sted, så se på eksempel D i eksemplerne fra MSDN-side på 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
)
Tilføj noget lignende til EmployeeLevel-kolonnen til din CTE, og alt burde virke.