Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie kann ich diese Sql Server-Hierarchie einfach in eine geerbte Inklusivliste glätten?

Sie können dies mit einem rekursiven allgemeinen Tabellenausdruck (cte) tun.

WITH X (ProductId, CategoryId) AS (
    SELECT ProductId, CategoryId FROM #ProductCategory
    UNION ALL
    SELECT X.ProductId, C.ParentCategoryId FROM X
    INNER JOIN #Category C ON X.CategoryId = C.CategoryId
)
SELECT ProductId, CategoryId FROM X ORDER BY CategoryId, ProductId

Weitere Informationen unter http://msdn.microsoft.com/en-us/ library/ms186243.aspx