sql >> Databasteknik >  >> RDS >> Sqlserver

SQL rekursiv fråga

Byt bara om fälten i join-klausulen:

WITH CategoryTree AS
        (
        SELECT  *, 0 AS Generation    
        FROM    dbo.Category
        WHERE   CategoryName = 'Animation'
        UNION ALL
        SELECT  Cat.*, Generation + 1    
        FROM    CategoryTree
        JOIN    dbo.Category AS Cat
        ON      Cat.Id = CategoryTree.CategoryMaster
        )
SELECT  *
FROM    CategoryTree



  1. Förbättra lösenordshasningen med ett slumpmässigt salt

  2. Fråga databasvärden baserat på användarens plats

  3. FRITEXT-frågor i SQL Server 2008 matchar inte fras

  4. MYSQL Välja fram- och återgående data?