sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man får hierarkinivån för denna fråga

Du måste lägga till en kolumn som heter Level (eller vad du nu vill kalla det) - både till "ankaret" SELECT såväl som den rekursiva delen av din CTE - så här:

WITH CategoryRec AS 
(
    SELECT Id, Parentid, Name, 1 AS 'Level'
    FROM dbo.Category

    UNION ALL

    SELECT cr.Id, c.Parentid, cr.Name, cr.Level + 1 
    FROM CategoryRec AS cr 
    INNER JOIN dbo.Category AS c ON cr.Parentid = c.Id
    WHERE c.Parentid IS NOT NULL
)
SELECT DISTINCT Id, Parentid, Name, Level
FROM  CategoryRec


  1. MySQL uppdatering eller infoga eller dö fråga

  2. Aggregera booleska värden till sant om någon av källkolumnerna är sann

  3. Separera data från en ständigt bifogad fil till en ny fil

  4. Vad är det för fel med PDO-anslutning?