sql >> Database teknologi >  >> RDS >> Sqlserver

Sådan får du hierarkiniveauet for denne forespørgsel

Du skal tilføje en kolonne kaldet Level (eller hvad du nu vil kalde det) - både til "anker" SELECT såvel som den rekursive del af din CTE - sådan her:

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. Hvilken MySQL-datatype skal bruges til en IP-adresse?

  2. læser utf-8-indhold fra mysql-tabel

  3. PHP SQL-injektionsforebyggelse med strengoperationer

  4. Kan ikke oprette forbindelse til lokal MySQL-server gennem socket '/tmp/mysql.sock' (2)