Cách chính xác để thực hiện ĐẶT HÀNG của bạn là thêm mệnh đề ORDER BY vào lựa chọn ngoài cùng của bạn. Bất kỳ điều gì khác đều dựa vào chi tiết triển khai có thể thay đổi bất kỳ lúc nào (bao gồm nếu kích thước cơ sở dữ liệu / bảng của bạn tăng lên, điều này có thể cho phép nhiều xử lý song song hơn xảy ra).
Nếu bạn cần thứ gì đó thuận tiện để cho phép việc đặt hàng diễn ra, hãy xem Ví dụ D trong các ví dụ từ Trang MSDN trên 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
)
Thêm một cái gì đó tương tự vào cột EmployeeLevel vào CTE của bạn và mọi thứ sẽ hoạt động.