Điều này nên làm điều đó:
WITH MyTest as
(
SELECT P.ProductID, P.ParentID, CAST(P.ProductID AS VarChar(Max)) as Level
FROM Products P
WHERE P.ParentID = 0
UNION ALL
SELECT P1.ProductID, P1.ParentID, CAST(P1.ProductID AS VarChar(Max)) + ', ' + M.Level
FROM Products P1
INNER JOIN MyTest M
ON M.ProductID = P1.ParentID
)
SELECT * From MyTest
Và đây là SQL Fiddle được cập nhật.
Ngoài ra, hãy xem liên kết này để được trợ giúp với các CTE ... Chúng chắc chắn rất tốt khi biết:
Hy vọng điều này sẽ thành công!